用于删除和插入行的 Bash 脚本

用于删除和插入行的 Bash 脚本

我需要一个脚本来反汇编和重建一个文件,删除其中的某行,并在其位置插入几行。

所以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

www.grymoire.com/Unix/Sed.html

答案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

相关内容