脚本在正则表达式后获取一个字符串,并在匹配的每一行上替换它

时间:2012-05-09 18:55:30

标签: regex sed

到目前为止,我们已经能够提取模式匹配之间的刺痛但是无法根据需要将其扩展到打印。

我的文件内容:

my number 12345 string1 string2
my number 789 string1 string2
my number 456789023 string3 string4

下一个命令

sed -e "s/.*number//;s/string.*//" filename

给我输出

 12345 
 789 
 456789023 

我需要帮助来扩展它或更好的方式来打印输出

my number 12345 num 12345 string1 string2
my number 789 num 789 string1 string2
my number 456789023 num 456789023 string3 string4 

2 个答案:

答案 0 :(得分:1)

从你的例子中,我推导出:

sed -r "s/number (.*) string/number \1 num \1 string/" FILE

答案 1 :(得分:1)

这可能对您有用:

sed 's/[0-9]\+/& num &/' file