我想从文件中删除一个或多个特定的行号。如何使用sed做到这一点?
当前回答
您可以删除特定的单行及其行号
sed -i '33d' file
这将删除33行号上的行并保存更新后的文件。
其他回答
如果你想删除第5到第10行和第12行:
sed -e '5,10d;12d' file
这将把结果打印到屏幕上。如果你想把结果保存到同一个文件:
sed -i.bak -e '5,10d;12d' file
这将把未修改的文件存储为file.bak,并删除给定的行。
注意:行号从1开始。文件的第一行是1,而不是0。
$ cat foo
1
2
3
4
5
$ sed -e '2d;4d' foo
1
3
5
$
您可以删除特定的单行及其行号
sed -i '33d' file
这将删除33行号上的行并保存更新后的文件。
还有awk
awk 'NR!~/^(5|10|25)$/' file
最短的,删除sed中的第一行
Sed -i '1d'文件
正如Brian在这里所说,<address><command>被使用,<address>< 1>和<command> <d>。