|
藍森林 http://www.lslnet.com 2006年6月26日 11:18
請教高手,我有一個文件,我想讀取小數點前四位的數字,該怎麼辦?
我有一個文件內容為:TTDL531300130200604140812004417.00_temp ,當然這樣的行有n條,我只想得到小數點前的四位數字(有效值),我該怎麼處理,謝謝了 |
[code]
cat file|grep -o '....\.'|grep -o '[0-9]\+'[/code]
ex:
/home/lee#echo asdfsadf112121213214214.234234|grep -o '....\.'|grep -o '[0-9]\+'
4214
|
回復 2樓 寂寞烈火 的帖子
我將那個文件的第1行和最後一行分別賦值給變量了,因為每行不只這個字段還有別的字段,我用awk處理了,現在不知道怎麼能得到小數點前面的四位數字?謝謝 |
回復 2樓 寂寞烈火 的帖子
grep -o?我的sun 系統man後沒有-o參數!你的呢? |
-->
用awk比較複雜吧
ex:
[code]
echo 'asdgdsfg1234.abcd'|awk '{sub(/\..*$/,"");print substr($0,(length($0)-3),length($0))}'
[/code] |
回復 5樓 寂寞烈火 的帖子
QUOTE:
原帖由 zb_wyy 於 2006-4-27 11:11 發表
grep -o?我的sun 系統man後沒有-o參數!你的呢?
用awk比較複雜吧
ex:
CODE:[Copy to clipboard]echo 'asdgdsfg1234.abcd'|awk '{sub(/\..*$/,"");print substr($0,(length($0)-3),length($0))}'
其實用grep也不錯,關鍵我的系統的grep沒有發現-o的參數,-o是什麼意思? |
-->
grep manpage:
-->
其實,用BASH的子串操作亦可,例如:
[code]
str=abcd1234.abc;str=${str/\.*/};str=${str:$((${#str}-4)):4};echo $str[/code]
|
回復 7樓 寂寞烈火 的帖子
你那個shell是什麼類型shell,我試了一下報錯了 |
sed 's/.*\(....\)\..*/\1/' ur-file |
回復 9樓 waker 的帖子
sed能處理一個變量嗎?我的數據是個變量 |
| |