我需要一个脚本来反汇编和重建一个文件,删除其中的某行,并在其位置插入几行。
所以A)我需要一个命令来选择该行之前的所有内容,但不选择该行,也不选择该行之后的任何内容,并且乙)我需要选择该行之后的所有内容,但不是该行,而是该行之后的所有内容......
答案1
使用 sed 的示例
文件lines
:
line 1
line 2
line three
line 4
line three
脚本,用三行新行替换内容行:
sed '/line three/ c\
This is a new line\nNext line\nLast new line' lines
其中\n
'newline' 分隔新行。
输出:
line 1
line 2
This is a new line
Next line
Last new line
line 4
请参阅此链接了解详细信息sed
,
答案2
假设您有一个名为的文件,in.txt
其内容如下:
one
two
three
four
five
您还有一个名为的文件middle.txt
:
drei
trois
如果你想用第二个文件的内容替换第一个文件中的“three”,你可以将如下内容写入文件中replace.awk
:
#!/usr/bin/awk -f
{
if ($0 == "three") {
file="middle.txt";
while ((getline 0) {
print;
}
} else {
print;
}
}
然后使其可执行:
chmod +x replace.awk
并运行它:
./replace.awk < in.txt
其结果将是:
one
two
drei
trois
four
five