我可以使用sed
從文件中抓取特定行。是否有一種簡單的方法可以將此行或段落插入到另一個文件中的特定行上?使用標準unix工具在文件中插入行
sed -n 1,10p >> foo
將結果附加到foo
,這將結果放在底部。是否有標準的unix工具插入特定的行?
我可以使用sed
從文件中抓取特定行。是否有一種簡單的方法可以將此行或段落插入到另一個文件中的特定行上?使用標準unix工具在文件中插入行
sed -n 1,10p >> foo
將結果附加到foo
,這將結果放在底部。是否有標準的unix工具插入特定的行?
也許您在找sed
的r
命令?
sed '123r file.txt' main.txt
插入的file.txt
內容在main.txt
123行,印刷一切標準輸出。
(如果你的sed
有-i
選項,你可以把它直接修改main.txt
;否則,也不會修改它的輸入文件。)
如果你要替換文件n
日線foo
你可以用
cp foo foo.tmp
head -n $((n-1)) foo.tmp > foo
echo "newline" >> foo
tail -n +$((n+1)) foo.tmp >> foo
所以你拿第一n-1
線與head -n NR
做到這一點,追加新的行,然後追加其餘則來自行開始n+1
與tail -n +NR
。
您可以替換'cmd> foo; cmd >> foo; cmd >> foo' with'(cmd; cmd; cmd)> foo' –
這可能會爲你工作(GNU SED):
sed '123s|.*|sed '\''1,10!d'\'' insert.txt|e' main.txt
如何將一個字符串,而不是file.txt添加到main.txt?謝謝 – Judking
@Judking改爲發表新問題。但簡單地說,您正在尋找'i'和/或'a'命令。 – tripleee