从bourne shell中指定行号的文件中删除行

use*_*199 7 unix shell sed

我在Bourne Shell中进行预约跟踪脚本,需要从文本文件中删除约会.如果我有行号,如何从文件中删除一行,不留空格?该文件如下所示:

1:19:2013:Saturday:16.00:20.30:Poker  
1:24:2013:Thursday:11.00:11.45:Project meeting  
1:24:2013:Thursday:14.00:15.10:CSS Meeting
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 23

要删除第5行,请执行:

sed -i '5d' file.txt
Run Code Online (Sandbox Code Playgroud)

对于可变行号:

sed -i "${line}d" file.txt
Run Code Online (Sandbox Code Playgroud)

如果-i您的sed风格中没有该选项,您可以使用临时文件模拟它:

sed "${line}d" file.txt > file.tmp && mv file.tmp file.txt
Run Code Online (Sandbox Code Playgroud)

  • 在MacOS X -i上需要一个备份文件扩展名参数.您可以使用空字符串省略它以获得所需的相同行为:`sed -i""'5d'file.txt` (2认同)