51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

在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 &&mvtemp example.txt

请注意,最好在操作前备份文件,以防不小心覆盖了重要的内容。
如果我们不知到行数,想在具体位置插入内容呢?
如果你不知道要插入的内容的确切行号,而是想在某个具体位置插入内容,可以使用 sed 和正则表达式来匹配位置。以下是一个示例:
sed'/关键词/ i 插入的内容'文件名

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

例如,如果你想在包含关键字 "example" 的行之前插入内容 "New Line",可以使用以下命令:
sed'/example/ i New Line'example.txt

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


赞(7)
未经允许不得转载:工具盒子 » Linux|在文件具体某一行插入内容|sed|awk