2

我可以使用sed. 有没有一种简单的方法可以将这一行或段落插入到另一个文件的特定行中?

sed -n 1,10p >> foo将结果附加到foo,将其放在底部。是否有标准的 unix 工具可以插入特定的行?

4

3 回答 3

6

也许您正在寻找sed' 的r命令?

sed '123r file.txt' main.txt

file.txt在第 123 行插入 的内容,将所有内容main.txt打印到标准输出。

(如果你sed有这个-i选项,你可以main.txt直接修改它;否则,它不会修改它的输入文件。)

于 2012-08-27T06:33:59.310 回答
3

如果要替换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

于 2012-08-27T06:22:58.367 回答
0

这可能对您有用(GNU sed):

sed '123s|.*|sed '\''1,10!d'\'' insert.txt|e' main.txt
于 2012-08-27T21:06:17.617 回答