我正在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
答案 0 :(得分:21)
要删除第5行,请执行:
sed -i '5d' file.txt
对于可变行号:
sed -i "${line}d" file.txt
如果您的sed风格中没有-i
选项,您可以使用临时文件模拟它:
sed "${line}d" file.txt > file.tmp && mv file.tmp file.txt
答案 1 :(得分:2)
按约会(行)编号删除:
sed -i '3d' input
按名称删除:
sed -i '/:Poker/d' input
如果就地(-i
)选项在您的系统上不起作用,您可以执行以下操作:
sed '/:Poker/d' input > input.tmp && mv input.tmp input
答案 2 :(得分:0)
这是一个使用awk的快速:
lineToDelete=$1
awk "NR != $lineToDelete"