藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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能處理一個變量嗎?我的數據是個變量



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com