我在Bourne Shell中預約跟蹤腳本,並且需要從文本文件中刪除約會。如果我有行號,如何從文件中刪除一行而不留空格?該文件是這樣的:從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
我在Bourne Shell中預約跟蹤腳本,並且需要從文本文件中刪除約會。如果我有行號,如何從文件中刪除一行而不留空格?該文件是這樣的:從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
要刪除第5行,這樣做:
sed -i '5d' file.txt
對於可變行號:
sed -i "${line}d" file.txt
如果-i
選項不可用在你的sed的味道,你可以用temp文件模擬它:
sed "${line}d" file.txt > file.tmp && mv file.tmp file.txt
這裏是一個匆匆用awk:
lineToDelete=$1
awk "NR != $lineToDelete"
這不會從文件中刪除該行。它將文件打印到STDOUT,除了這一行。 – mivk 2015-06-05 08:55:18
要通過appointement刪除(行)號:
sed -i '3d' input
按名稱刪除:
sed -i '/:Poker/d' input
如果就地(-i
)選項在您的系統上無法正常工作:
sed '/:Poker/d' input > input.tmp && mv input.tmp input
POSIX sed不支持sed -i。由於我們在這裏使用Bourne,所以有可能這不是Linux。例如,它在Solaris/usr/bin/sed中不起作用。 – 2013-03-14 02:51:16
POSIX sed不支持sed -i。由於我們在這裏使用Bourne,所以有可能這不是Linux。例如,它在Solaris/usr/bin/sed中不起作用。 FWIW。 – 2013-03-14 02:51:49
@jimmcnamara好點。用額外的非'-i'答案更新。 – 2013-03-14 02:53:34
爲我完美工作,謝謝。 – user1731199 2013-03-14 03:07:28