我可以使用sed. 有没有一种简单的方法可以将这一行或段落插入到另一个文件的特定行中?
sed -n 1,10p >> foo将结果附加到foo,将其放在底部。是否有标准的 unix 工具可以插入特定的行?
也许您正在寻找sed' 的r命令?
sed '123r file.txt' main.txt
file.txt在第 123 行插入 的内容,将所有内容main.txt打印到标准输出。
(如果你sed有这个-i选项,你可以main.txt直接修改它;否则,它不会修改它的输入文件。)
如果要替换n文件中的第 th 行,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。
这可能对您有用(GNU sed):
sed '123s|.*|sed '\''1,10!d'\'' insert.txt|e' main.txt