【发布时间】:2011-09-06 02:16:59
【问题描述】:
我需要替换文件每一行中的两个模式。例如,该文件包含以下内容:
pattern1 a1 b1 c1
pattern2 a2 b2 c2
pattern1 a1 b1 c1
基本上,只要出现“pattern1”,a1 就需要替换为 a2,b1 替换为 b2,以此类推。不过我也想把pattern1改成pattern2。
到目前为止,我有一些接近的东西:
/pattern1/ s/a1 b1 c1/a2 b2 c2/
注意,我想将整个 sed 脚本保存在一个文件中。
更新 期望的输出,这可能不是最好的例子,我会回答任何问题。
pattern2 a2 b2 c2
pattern2 a2 b2 c2
pattern2 a2 b2 c2
【问题讨论】:
-
对于任何给定的输入,什么是有效输出还不是很清楚,你能举个例子吗?
-
@heltonbiker 抱歉,我更新了问题。
-
你说'a1 ...替换了a2'(意思是用a1替换a2的出现)但你的例子建议'a1 ...替换为a2'(意思是用a2替换a1的出现) ;你真正想要的是哪个?
-
为什么在第 1 行和第 3 行,相同的输入会得到不同的输出?
-
@Jonathon 抱歉,我想我应该更多地校对我的问题。
标签: linux unix sed text-editor