【发布时间】:2014-11-18 12:35:43
【问题描述】:
我的问题是以下问题的变体:
bash: replace an entire line in a text file
问题是用给定的字符串(替换行)替换文件的第 N 行。就我而言,我不能只键入替换行,而是必须从另一个文件中读取它。
例如:
文本文件1:
my line
your line
his line
her line
文本文件2:
our line
我想用 textfile2 中的行替换 textfile1 的第二行。
我以为我可以阅读 textfile2
while IFS= read SingleLine
等等。然后使用$SingleLine 作为替换行,但我失败了......取决于我使用的引号类型(请原谅我的无知......)我最终用文本替换了有问题的行 $SingleLine 或使用 SingleLine 或只是收到错误消息:-[
我相信你可以帮助我!!
编辑解决方案: 我选择了小改动的内联解决方案
sed '2d;1r textfile2' textfile1 > newfile1
要替换第 N 行,解决方案是(有关解释,请参阅 cmets on接受的解决方案)
sed 'Nd;Mr textfile2' textfile1 > newfile1
N 为所需的行号,M=N-1。
谢谢大家!
【问题讨论】: