亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5815 | 回復(fù): 16
打印 上一主題 下一主題

AWK求助,高手幫忙看看  關(guān)閉 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2003-09-10 15:04 |只看該作者 |倒序瀏覽
數(shù)據(jù)文件:tmp111
------------------------------------------------------------------------------
1231005010|蘇義|1231005010|2003/06/25|2003/08/25|200000.0|0.0|6.3
1231017864|蘇義強|1231017864|2001/04/29|2001/08/30|10000.0|0.0|6.975
1231017911|黃偉|1231017911|2003/07/07|2004/07/03|200000.0|0.0|6.6375
1231021548|黃偉希|1231021548|2001/04/18|2001/10/18|20000.0|10000.0|6.975
1231023511|張三|1231023511|2003/01/07|2003/07/06|15000.0|0.0|6.3
1231024763|李四|1231024763|2000/08/11|2001/08/11|10000.0|0.0|7.3125
1231030010|蘇義紅|1231030010|2001/12/27|2002/12/26|60000.0|38000.0|7.3125
1231042038|蘇義紅|1231042038|2003/02/27|2003/12/20|40000.0|0.0|6.6375
1231042190|王五|1231042190|2001/06/21|2001/11/21|20000.0|10000.0|6.975
1231053035|趙六|1231053035|2001/07/20|2001/07/24|30000.0|0.0|6.975
1231053510|孫七|1231053510|2002/02/08|2002/08/08|50000.0|0.0|6.975
1231054277|李八|1231054277|2002/04/18|2002/12/18|50000.0|0.0|6.6375

--------------------------
echo "請輸入日期[yyyy/mm/dd]:\c"
read yqrq
awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "$yqrq" ) print $0 }' tmp111 > yqdkjg

我輸入的日期不起作用這是怎么回事呀........
設(shè)定yqrq=`date '+%Y%m%d'`也沒結(jié)果
但直接在awk里用awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "2003/09/10" ) print $0 }' tmp111 > yqdkjg
又有結(jié)果,這是怎么回事呀,請高手幫忙

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
2 [報告]
發(fā)表于 2003-09-10 15:08 |只看該作者

AWK求助,高手幫忙看看

原帖由 "光明曉仙"]echo "請輸入日期[yyyy/mm/dd 發(fā)表:
:\c"
read yqrq
awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "$yqrq" ) print $0 }' tmp111 > yqdkjg
我輸入的日期不起作用這是怎么回事呀........
設(shè)定yqrq=`date '+%Y%m%d'`也沒結(jié)果
但直接在awk里用awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "2003/09/10" ) print $0 }' tmp111 > yqdkjg
又有結(jié)果,這是怎么回事呀,請高手幫忙

read yqrq
awk 'BEGIN { FS="|";OFS="|" } { if ( $5 <= '"$yqrq"' ) print $0 }' tmp111 > yqdkjg

論壇徽章:
0
3 [報告]
發(fā)表于 2003-09-10 16:20 |只看該作者

AWK求助,高手幫忙看看

[quote]原帖由 "admirer"]) print $0 }' tmp111 > yqdkjg[/quote 發(fā)表:
     
我感覺
if ( $5 <= '"$yqrq"' )
這段有問題呀~~,而且照版主GG的寫法運行后結(jié)果跟原來一樣呀!!
我想主要也許是$5中的字符串不是簡單的數(shù)值.所以無法進(jìn)行>=之類的算術(shù)運算.

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
4 [報告]
發(fā)表于 2003-09-10 16:35 |只看該作者

AWK求助,高手幫忙看看

原帖由 "bjgirl" 發(fā)表:
   
我感覺
if ( $5 <= '"$yqrq"' )
這段有問題呀~~,而且照版主GG的寫法運行后結(jié)果跟原來一樣呀!!
我想主要也許是$5中的字符串不是簡單的數(shù)值.所以無法進(jìn)行>=之類的算術(shù)運算.

你說的對!當(dāng)時沒有測試,只是從結(jié)構(gòu)上進(jìn)行了修改?磥淼昧硐朕k法了!

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
5 [報告]
發(fā)表于 2003-09-10 16:53 |只看該作者

AWK求助,高手幫忙看看

  1. #!/bin/sh
  2. printf "input date(yyyy/mm/dd):"
  3. read a
  4. while read line
  5. do
  6. echo "${line}"|sed -n -e "s:$a:&:p"
  7. done <yourdatafile
復(fù)制代碼

論壇徽章:
0
6 [報告]
發(fā)表于 2003-09-10 17:51 |只看該作者

AWK求助,高手幫忙看看

效果是顯示小于用戶輸入日期的資料

  1. #!/bin/ksh
  2. #scriptname:_sort
  3. read input?"請輸入日期[yyyy/mm/dd]:"
  4. var=$(cat urfile|awk -F\| 'BEGIN{OFS="|"}{print $5,$1,$2,$3,$4,$6,$7,$8}'|sort
  5. -M)
  6. line=$(echo $var|tr ' ' '\n'|nl|grep $input|awk '{print $1}')
  7. echo $var|tr ' ' '\n'|nl|sed -n "1,${line}p"|awk '{print $2}'|awk -F\| 'BEGIN{OFS="|"}{print $2,$3,$4,$5,$1,$6,$7,$8}'
復(fù)制代碼

結(jié)果:

  1. $_sort
  2. 請輸入日期[yyyy/mm/dd]:2002/08/08
  3. 1231053035|趙六|1231053035|2001/07/20|2001/07/24|30000.0|0.0|6.975
  4. 1231024763|李四|1231024763|2000/08/11|2001/08/11|10000.0|0.0|7.3125
  5. 1231017864|蘇義強|1231017864|2001/04/29|2001/08/30|10000.0|0.0|6.975
  6. 1231021548|黃偉希|1231021548|2001/04/18|2001/10/18|20000.0|10000.0|6.975
  7. 1231042190|王五|1231042190|2001/06/21|2001/11/21|20000.0|10000.0|6.975
  8. 1231053510|孫七|1231053510|2002/02/08|2002/08/08|50000.0|0.0|6.975
復(fù)制代碼

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
7 [報告]
發(fā)表于 2003-09-10 19:04 |只看該作者

AWK求助,高手幫忙看看

[quote]原帖由 "bjgirl"]效果是顯示小于用戶輸入日期的資料[/quote 發(fā)表:

不中用了,又把“<=”的條件給忘了!唉.....
這樣把,補償一下
  1. #!/bin/ksh
  2. #filename:selectdate.sh
  3. printf "Input your date(yyyy/mm/dd):"
  4. read a
  5. sort -t"|" -k 5 aa.t >/tmp/t_$$
  6. b=$(grep -n "$a" /tmp/t_$$|cut -d: -f1|sed -n '$p')
  7. sed -n "1,$"p /tmp/t_$$
  8. rm /tmp/t_$$
復(fù)制代碼
  1. #selectdate.sh
  2. Input your date(yyyy/mm/dd):2002/12/18
  3. 1231053035|趙六|1231053035|2001/07/20|2001/07/24|30000.0|0.0|6.975
  4. 1231024763|李四|1231024763|2000/08/11|2001/08/11|10000.0|0.0|7.3125
  5. 1231017864|蘇義強|1231017864|2001/04/29|2001/08/30|10000.0|0.0|6.975
  6. 1231021548|黃偉希|1231021548|2001/04/18|2001/10/18|20000.0|10000.0|6.975
  7. 1231042190|王五|1231042190|2001/06/21|2001/11/21|20000.0|10000.0|6.975
  8. 1231053510|孫七|1231053510|2002/02/08|2002/08/08|50000.0|0.0|6.975
  9. 1231054277|李八|1231054277|2002/04/18|2002/12/18|50000.0|0.0|6.6375
復(fù)制代碼

論壇徽章:
0
8 [報告]
發(fā)表于 2003-09-10 19:18 |只看該作者

AWK求助,高手幫忙看看


  1. sort -t"|" -k 5
復(fù)制代碼

這句是關(guān)鍵所在!(這次知道了sort的用法啦),
謝謝版主!

論壇徽章:
0
9 [報告]
發(fā)表于 2003-09-10 19:30 |只看該作者

AWK求助,高手幫忙看看

謝謝admirer 和bjgirl 問題是解決了

我的目的正是要求小于等于輸入日期的數(shù)據(jù)
我不明白的就是直接用
awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "2002/09/10" ) print $0 }' tmp111 > yqdkjg
可以得出正確結(jié)果,而用變量卻沒法得出正確結(jié)果

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
10 [報告]
發(fā)表于 2003-09-10 19:48 |只看該作者

AWK求助,高手幫忙看看

原帖由 "光明曉仙" 發(fā)表:
謝謝admirer 和bjgirl 問題是解決了

我的目的正是要求小于等于輸入日期的數(shù)據(jù)
我不明白的就是直接用
awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "2002/09/10" ) print $0 }' tmp111 > yqdkjg
可以?.........
  
哦!
經(jīng)過推敲,應(yīng)該是變量替換時出的問題,awk在引用系統(tǒng)變量時并不給他一個引號"作為字符串處理,所以不能于$5所表示的字符串進(jìn)行比較,證據(jù)如下:
設(shè)變量yqrq="2002/12/18"
awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "'"$yqrq"'") print $0 }' datafile
  1. 1231017864|蘇義強|1231017864|2001/04/29|2001/08/30|10000.0|0.0|6.975
  2. 1231021548|黃偉希|1231021548|2001/04/18|2001/10/18|20000.0|10000.0|6.975
  3. 1231024763|李四|1231024763|2000/08/11|2001/08/11|10000.0|0.0|7.3125
  4. 1231042190|王五|1231042190|2001/06/21|2001/11/21|20000.0|10000.0|6.975
  5. 1231053035|趙六|1231053035|2001/07/20|2001/07/24|30000.0|0.0|6.975
  6. 1231053510|孫七|1231053510|2002/02/08|2002/08/08|50000.0|0.0|6.975
  7. 1231054277|李八|1231054277|2002/04/18|2002/12/18|50000.0|0.0|6.6375
復(fù)制代碼

另外還可以使用awk的"-v"解決變量問題:
  1. awk -v a=$yqrq 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= a) print $0 }' datafile
  2. 1231017864|蘇義強|1231017864|2001/04/29|2001/08/30|10000.0|0.0|6.975
  3. 1231021548|黃偉希|1231021548|2001/04/18|2001/10/18|20000.0|10000.0|6.975
  4. 1231024763|李四|1231024763|2000/08/11|2001/08/11|10000.0|0.0|7.3125
  5. 1231042190|王五|1231042190|2001/06/21|2001/11/21|20000.0|10000.0|6.975
  6. 1231053035|趙六|1231053035|2001/07/20|2001/07/24|30000.0|0.0|6.975
  7. 1231053510|孫七|1231053510|2002/02/08|2002/08/08|50000.0|0.0|6.975
  8. 1231054277|李八|1231054277|2002/04/18|2002/12/18|50000.0|0.0|6.6375
復(fù)制代碼
   

這叫吃一塹長一智吧!這個實例值得大家汲。/[size]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP