使用sed修改一行

时间:2012-03-27 08:29:38

标签: sed

我需要使用sed来使用sed进行以下要求

我有一个字符串作为$ str,我需要替换文件中的吹线

abh{1..$abh}             cdf_$ghu,xyz                 *  abh{}.$xy

新修改的行应如下所示

abh{1..$abh}             cdf_$ghu,$str                 *  abh{}.$xy

注意"xyz"可以是任意值。你能告诉我如何在一个衬里使用sed。

sed 's/\(^\s*abh{1..$abh}\s*\)\(.*xyz\)/\1/' file.txt

但仍然无效。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:1)

试试这个:

$ sed 's|\(\S\+\s\+[^,]\+,\)\S\+\(\s\+.*\)|\1$str\2|' file.txt 
abh{1..$abh}             cdf_$ghu,$str                 *  abh{}.$xy

甚至更简单:

$ sed 's|,\S\+|,$str|' example.txt

答案 1 :(得分:0)

echo 'abh{1..$abh}             cdf_$ghu,xyz                 *  abh{}.$xy' | sed 's/\(.*\$ghu,\)\(.*\)\( .*\)/\1\$str\3/g'