行我的問題是下面的一個變種:在文本文件替換行與其他文本文件
bash: replace an entire line in a text file
問題有一個與給定的字符串替換文件的第N行(替換線)。就我而言,我不能只輸入替換行,但我必須從另一個文件中讀取它。
例如:
textfile1:
my line
your line
his line
her line
textfile2:
our line
我想從textfile2行更換textfile1 2號線。
我想我可能只是讀textfile2
while IFS= read SingleLine
等,然後使用$SingleLine
作爲替代路線,但我失敗了......根據我用引號的類型(請原諒我的無知。 ..)我結束了與文本$ SINGLELINE或SINGLELINE或剛剛收到錯誤消息替換有問題的行: - [
我相信你能幫助我!
編輯有關解決方案: 我去與小改內嵌解決方案
sed '2d;1r textfile2' textfile1 > newfile1
要更換的第N行,該解決方案將是(見的解釋接受的解決方案評論)
sed 'Nd;Mr textfile2' textfile1 > newfile1
其中N爲期望的行數並且M = N-1。
謝謝大家!
謝謝!但是......你能解釋'2d; 1r'部分嗎?特別是:如果我想更換第四條線? – ppapakon 2014-09-24 06:49:17
'2d'正在刪除第2行,'1r file2'正在替換第1行結束後的file2內容。要替換第4行,請使用:'sed'4d; 3r file2'file1' – anubhava 2014-09-24 06:50:47
好!謝謝,這真的很快! :-)我用小小的改變'sed'2d; 1r textfile2'textfile1> newfile1'去換取內聯解決方案來保存一個新文件而不破壞原來的文件。 – ppapakon 2014-09-24 06:59:41