Linux|在文件具体某一行插入内容|sed|awk

linux admin 4个月前 (01-11) 110次浏览 0个评论

在Linux中,我们可以使用一些命令行工具来在文件的特定行插入内容。以下是两种常见的方法:

1. 使用 sed 命令:

sed -i '行号i 插入的内容' 文件名

例如,如果要在文件 example.txt 的第 5 行插入内容 “New Line”,可以使用以下命令:

sed -i '5i New Line' example.txt

2. 使用 awk 命令:

awk -v line=行号 -v text="插入的内容" 'NR == line {print text} {print}' 文件名 > 临时文件 && mv 临时文件 文件名

例如,如果要在文件 example.txt 的第 5 行插入内容 “New Line”,可以使用以下命令:

awk -v line=5 -v text="New Line" 'NR == line {print text} {print}' example.txt > temp && mv temp example.txt

请注意,最好在操作前备份文件,以防不小心覆盖了重要的内容。

如果我们不知到行数,想在具体位置插入内容呢?

如果你不知道要插入的内容的确切行号,而是想在某个具体位置插入内容,可以使用 sed 和正则表达式来匹配位置。以下是一个示例:

sed '/关键词/ i 插入的内容' 文件名

在这个例子中,关键词 是你想要匹配的行的关键字。sed 将在找到包含该关键字的行之前插入指定的内容。

例如,如果你想在包含关键字 “example” 的行之前插入内容 “New Line”,可以使用以下命令:

sed '/example/ i New Line' example.txt

如果你确认插入的位置是唯一的,这样的方法通常是有效的。如果关键字可能出现在多个位置,你可能需要进一步调整正则表达式以确保匹配到正确的位置。


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux|在文件具体某一行插入内容|sed|awk
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址