如何删除文本文件中的一定范围的行?

如何删除文本文件中的一定范围的行?

我想知道如何使用 Bash 快速删除文本。例如,我有一个名为 file.txt 的文件,总共 500 行。

我想删除第 80 行至第 146 行 - 我该怎么做?

什么终端命令可以做到这一点?

答案1

如果这是一次我会使用 vi 或 vim

vi {filename}
:86,146d
:wq

最后一个保存并退出。使用 sed:

sed '86,146d' {file}

如果不确定,请进行备份,以便可以恢复。

答案2

awk在终端打印:

awk 'NR < 80 || NR > 146' file.txt

或者gawk就地编辑文件:

gawk -i inplace 'NR < 80 || NR > 146' file.txt

相关内容