在行的末尾添加具有一些SPECIFIC String ksh的文本

时间:2014-02-21 22:19:54

标签: regex sed ksh

我想在每行包含一些字符串的末尾添加特定的字符串,空白行应保持不受影响。 如何使用sed命令,以便仅在选定的行之后附加我需要的字符串。

说文件名是temp.txt

abc "123.cf"
abc
abc "456.cf"
ksh
entry "e123.cf"

现在我想将> /dev/null 2>&1 &追加到最后有.cf“的每一行的末尾 并且需要结果

abc "123.cf" > /dev/null 2>&1 &
abc
abc "456.cf" > /dev/null 2>&1 &
ksh
entry "e123.cf" > /dev/null 2>&1 &

我正在使用命令:

sed -e 's:.cf"$:.ccf" > /dev/null 2>&1 &:' -i temp.txt

似乎不起作用。 :-( 请帮忙。

3 个答案:

答案 0 :(得分:1)

kent$  sed 's#.cf"$#& > /dev/null 2>\&1 \&#' file
abc "123.cf" > /dev/null 2>&1 &
abc
abc "456.cf" > /dev/null 2>&1 &
ksh
entry "e123.cf" > /dev/null 2>&1 &

它在bash中起作用。

答案 1 :(得分:1)

awk '/.cf"$/ {$(NF+1) = "> /dev/null 2>&1 &"} 1'

答案 2 :(得分:0)

格伦斯的一个变种:

awk '/.cf"$/ {$0=$0FS"> /dev/null 2>&1 &"}8' file