【发布时间】:2017-05-18 13:24:26
【问题描述】:
我有两个文件,内容如下
file1
pattern1something1end1
pattern1something2end2
pattern2something3end3
pattern2something4end4
pattern3something5end5
pattern4something6end6
file2
pattern0something7end7
pattern1something8end8
pattern1something9end9
pattern2something10end10
pattern2something11end11
pattern2something12end12
pattern3something13end13
pattern4something14end14
现在我希望将 file1 更改为从 pattern2 开始的所有行替换为 file2 中的所有行,这些行在 linux 环境中以相同的 pattern2 开头
所以file1 中的最终内容将如下所示
pattern1something1end1
pattern1something2end2
pattern2something10end10
pattern2something11end11
pattern2something12end12
pattern3something5end5
pattern4something6end6
文件中的任何模式的行数可以不同,替换应使用行组。
两个文件中只有一组以任何模式开头的行。
我希望最好使用 sed,但这不是一个约束。
如果想为pattern1 或pattern3 做类似的练习,同样的解决方案也应该起作用
【问题讨论】:
-
有两个文件行数相同,以
pat2开头?如果没有,你如何处理它们 -
@kent 不,以
pattern2开头的行数可以不同。要处理,file1中的一组行应替换为file2中存在的一组行 -
你看过“你如何处理它们”部分吗?
-
@kent 也更新了问题和评论
标签: linux file awk replace sed