我可以使用sed从文件中抓取特定的行。有没有一种简单的方法可以将这行或段落插入到另一个文件的特定行中?
sed -n 1,10p >> foo将结果附加到foo,这会将结果放在底部。是否有标准的unix工具可以插入到特定的行中?
发布于 2012-08-27 14:33:59
也许您正在寻找sed的r命令?
sed '123r file.txt' main.txt在main.txt的第123行插入file.txt的内容,并将所有内容打印到标准输出。
(如果您的sed有-i选项,您可以让它直接修改main.txt;否则,它不会修改它的输入文件。)
发布于 2012-08-27 14:22:58
如果想要替换文件foo中的n行,可以使用
cp foo foo.tmp
head -n $((n-1)) foo.tmp > foo
echo "newline" >> foo
tail -n +$((n+1)) foo.tmp >> foo因此,您使用head -n NR获取第一个n-1行,添加您的新行,然后使用tail -n +NR添加从n+1行开始的其余行。
发布于 2012-08-28 05:06:18
这可能适用于您(GNU sed):
sed '123s|.*|sed '\''1,10!d'\'' insert.txt|e' main.txthttps://stackoverflow.com/questions/12137013
复制相似问题