用另一个文本中的某一行替换文本中的某一行

时间:2018-06-05 01:44:40

标签: linux sed replace

this question起飞,我想将一个文本文件中的某一行替换为另一个文本文件中的另一行。例如:

text1包含:

line 1
line 2
line 3

text2的:

line 4
line 5
line 6

我想用text2中的第二行替换text1中的第二行,上面提到的问题中的解决方案是通过添加text2的所有内容来代替要更改的行,而不是某一行反对某一行线。

我遇到的实际问题是我有两个文件,一个包含需要在另一个文件中运行相同命令的数据列表,我正在寻找一种自动化方法,自动用第一个文件中的第一行替换第二个文件中的某个字符串的脚本然后用第二行替换相同的字符串然后继续...不知道怎么做但我想如果我能解决那个sed命令我可能只是将它的副本等于我拥有的行数并按顺序运行它们。

1 个答案:

答案 0 :(得分:-1)

This might work for you (GNU sed):

sed -n '2p' file2 | sed -e '2r /dev/stdin' -e '2d' file1

Pipe the contents of the file2 into file1 i.e. print the second line of file2 to stdout. Replace the second line of file1 with the contents of stdin.