原帖由 "光明曉仙"]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é)果,這是怎么回事呀,請高手幫忙
原帖由 "bjgirl" 發(fā)表:
我感覺
if ( $5 <= '"$yqrq"' )
這段有問題呀~~,而且照版主GG的寫法運(yùn)行后結(jié)果跟原來一樣呀!!
我想主要也許是$5中的字符串不是簡單的數(shù)值.所以無法進(jìn)行>=之類的算術(shù)運(yùn)算.
原帖由 "光明曉仙" 發(fā)表:
謝謝admirer 和bjgirl 問題是解決了
我的目的正是要求小于等于輸入日期的數(shù)據(jù)
我不明白的就是直接用
awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "2002/09/10" ) print $0 }' tmp111 > yqdkjg
可以?.........
awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "'"$yqrq"'") print $0 }' datafile
原帖由 "光明曉仙" 發(fā)表:
呵呵admirer哥真厲害,這下子我全明白了。。。。
-------------
第一個(gè)好用
-------------
echo "請輸入日期[yyyy/mm/dd]:\c"
read yqrq
awk 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= "‘$yqrq’" ) print $0 }' tmp111 > yqdkjg
---------------
第二個(gè)也好用
---------------
echo "請輸入日期[yyyy/mm/dd]:\c"
read yqrq
awk -v a=$yqrq 'BEGIN { FS="|"} { OFS="|" } { if ( $5 <= a) print $0 }' tmp111 > yqdkjg
-------------------
再次表示感謝........
echo "請輸入日期[yyyy/mm/dd]:\c"
read yqrq
awk -v a=$yqrq 'BEGIN { FS="|";OFS="|" } { if ( $5 <= a) print $0 }' tmp111 > yqdkjg
歡迎光臨 Chinaunix (http://72891.cn/) | Powered by Discuz! X3.2 |