1. 程式人生 > >sed和awk的一些使用【轉載自http://blog.sina.com.cn/s/blog_6561ca8c0102we0o.html】

sed和awk的一些使用【轉載自http://blog.sina.com.cn/s/blog_6561ca8c0102we0o.html】

blog printf begin 文件中 字符串 filename hello 選項 sina

在linux中,awk和sed命令對於快速的文本編排非常靈活有用。對文本插入列的操作也可以使用sed或者awk命令來處理,下面簡單介紹:

如果想要在指定列前插入字符串RR,可以使用以下命令:
awk ‘{$NF="RR"$NF; print}‘ filename
這裏的$NF可以替換成任意的列數,RR字符串可以替換成任意多列字符串

如果想要在指定行的某一列前插入字符串RR,可以使用以下命令:
awk ‘NR==row{$NF="RR"$NF; print}‘ filename
這裏的row可以替換成任意行

還有另外一種awk的命令方式也可以用來插入指定字符串
假設有文件data裏面的內容為


1 2 3 4 5
6 7 8 9 10


想在文件開始插入兩個字符串 hello world使用awk實現如下:
awk ‘BEGIN{a="hello";b="world";}{printf("%s %s",a,b);}{for(c=1;c<=NF;c++){printf(" %s ", $c);} printf("\n")}‘ data

運行後data文件變為
hello world 1 2 3 4 5
hello world 6 7 8 9 10


若只是想在文件開始或者結尾插入一字符串,采用sed更容易實現
sed ‘s/^/hello world &/g‘ data
sed ‘s/$/& hello world/g‘ data
這裏的兩行命令分別在文件的每一行行首或行尾插入字符串hello world
這裏的命令執行之後,結果會打印在終端屏幕上,如果想要將結果導入其他文件,可以在命令後面加上">文件名",如果想直接在文件中修改,可在前面加上i選項:
sed -i ‘s/^/hello world &/g‘ data
sed -i ‘s/$/& hello world/g‘ data

我們還可以把兩條命令放在一起使用:
sed ‘/./{s/^/HEAD&/;s/$/&TAIL/}‘ data

sed和awk的一些使用【轉載自http://blog.sina.com.cn/s/blog_6561ca8c0102we0o.html】