使用shell脚本grep字符串a和字符串b之间的字符串

时间:2012-09-18 08:16:52

标签: regex shell grep

例如: 我有一个txt文件,如:

文本( “你好”) 文字(“世界”) 文本(“曾经”) 文本( “再次”)

Aim to replace 
hello  with string_1,
world with string_2,
once with string_3,
again  with string_4,

如何编写脚本?

2 个答案:

答案 0 :(得分:0)

perl -pi -e 's/hello/string_1/g;s/world/string_2/g;s/once/string_3/g;s/again/string_4/g' your_file;

上面的命令将进行inplace replacement.if你想要输出到控制台,然后, 删除“i”。

另一种方式是:

sed -e 's/hello/string_1/g;s/world/string_2/g;s/once/string_3/g;s/again/string_4/g' your_file

AWK:

awk '{gsub(/hello/,"string_1");gsub(/world/,"string_2");gsub(/once/,"string_3");gsub(/again/,"string_4");print}' your_file

答案 1 :(得分:0)

一种很好的技巧是使用替换字符串的字典。类似的东西:

perl -pe '%x=(
    "hello" => "string_1",
    "world" => "string_2", 
    "once" => "string_3",
    "again" => "string_4",
    );
    s/$k/$v/g while( $k, $v ) = each %x' input-file