11

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
4

3 に答える 3

31

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
于 2013-03-14T02:46:53.787 に答える
2

予約(行)番号で削除するには:

sed -i '3d' input

名前で削除するには:

sed -i '/:Poker/d' input

インプレース ( -i) オプションがシステムで機能しない場合は、次のことができます。

sed '/:Poker/d' input > input.tmp && mv input.tmp input
于 2013-03-14T02:47:26.823 に答える
0

awk を使用した簡単な例を次に示します。

lineToDelete=$1
awk "NR != $lineToDelete"
于 2013-03-14T02:47:20.993 に答える