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