2010-09-01 67 views
2

以下語法目標是增加「_name4」上排在第一位的字符串匹配的是「名1 +名2 + NAME3」,並以新的的sed +無cat命令

cat file | sed '/name1 + name2 + name3/s/[^ ]*\>/&_name4/' | sed s'/old/new/g' > new_file 

我的問題,以取代舊詞:是否可以在不使用cat命令的情況下做同樣的事情?

+0

是。 sed高興地接受一個文件名作爲命令行參數。你也可以用-e命令鏈接sed命令:sed -e'...'-e'...'-e'...'filename – galaxywatcher 2012-01-31 05:44:38

+0

參數'-i'覆蓋當前文件並在同一文件夾。不顯示屏幕輸出。 – ghaschel 2012-09-11 20:02:26

+0

sed -i -e「命令」-e「另一個commnand」文件 – ghaschel 2012-09-11 20:03:12

回答

6

你很少需要貓。你可以做這樣的:

sed '/name1 + name2 + name3/s/[^ ]*\>/&_name4/' file | sed 's/old/new/g' > new_file 

您還可以結合sed命令:

sed '/name1 + name2 + name3/s/[^ ]*\>/&_name4/;s/old/new/g' file > new_file 
1

sed file -e <expr>sed <expr> file