文章標簽 ‘awk’

sed,awk使用小記

2011年8月25日 沒有評論

awk 默認是用空格作為分隔符,后面的大括號需要用單引號引起來,不能用雙引號,否則就得不到想要的結果,如果要指定分隔符,使用 -F 分隔符。例如從文本-rw-r–r– 1 root root 165 Aug 25 12:51 runAll.sh中獲取165,可以使用命令:echo “-rw-r–r– 1 root root 165 Aug 25 12:51 runAll.sh” | awk -F” ” ‘{print $5}’,其中?awk -F” ” ‘可以省略.。

sed -e? patt 中的patt需要用引號引起來,單引號雙引號都行。sed能很方便的將文本中指定字符串替換成另外的字符串,配合其他的命令可以一次性把一個目錄下所有文件進行替換操作。例如把文本 “start zhou yang end”替換成“start yang zhou ?end”, 即把yang前面的一個單詞和與yang換位置,可以使用命令:

echo "start zhou yang end" | sed -e 's/ \(.*\) \(yang\)/ \2 \1/g'

。命令:

grep "114.87.189.33" ?* -R | awk -F: '{print $1}' |sort |uniq | xargs sed -i "s/114.87.189.33/214.187.189.33/g"

則會把當前目錄下所有文件的114.87.189.33替換成214.187.189.33。注意sed的patt里很多符號需要轉義的,比喻()等,g表示替換全部。

關于sed,awk的用戶可以參看?linux下監控網卡流量的shell腳本?中的用法。

另外在shell中把命令的輸出結果存放在一個變量可以用以下兩種方式

1,$var = `cmd`

2,? $var = $(cmd)

分類: Linux 標簽: , ,

linux下shell的浮點數四則運算

2011年8月14日 沒有評論

shell下的四則運算有兩種方式,一個是使用expr,另外一個用$(()),例如 expr 數1 運算符(+-*/) ?數2或$((?數1 運算符(+-*/) ?數2)),需要注意的是使用expr時操作符的前后需要一個空格.但是上述兩個都不能進行浮點數的運算,為了達到計算浮點數,可以借助命令awk來實現.例如?awk ‘BEGIN{print 7.01/5+2.3 }’執行后結果為3.702.如果兩個操作數是保存在變量中,必然 a=2.2,b=5,需要計算a除以b該怎么操作呢??awk ‘{print $a/$b}’,很可惜,這樣是不行的,似乎在awk里面無法通過$a來獲取變量的值,但是可以通過echo的方式把變量值傳入,?echo “$a $b” | awk ‘{print $1/$2}’,這樣就可以了,如果還是操作數,都加在echo中就行了.

分類: Linux 標簽: , , , ,

無覓相關文章插件,快速提升流量

30选5怎么中奖