首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用标准unix工具在文件中间插入行

使用标准unix工具在文件中间插入行
EN

Stack Overflow用户
提问于 2012-08-27 14:17:13
回答 3查看 6.8K关注 0票数 2

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-27 14:33:59

也许您正在寻找sedr命令?

代码语言:javascript
运行
复制
sed '123r file.txt' main.txt

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

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

票数 6
EN

Stack Overflow用户

发布于 2012-08-27 14:22:58

如果想要替换文件foo中的n行,可以使用

代码语言:javascript
运行
复制
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行开始的其余行。

票数 3
EN

Stack Overflow用户

发布于 2012-08-28 05:06:18

这可能适用于您(GNU sed):

代码语言:javascript
运行
复制
sed '123s|.*|sed '\''1,10!d'\'' insert.txt|e' main.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12137013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档