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
オプションが sed のフレーバーで使用できない場合-i
は、一時ファイルでエミュレートできます。
sed "${line}d" file.txt > file.tmp && mv file.tmp file.txt
予約(行)番号で削除するには:
sed -i '3d' input
名前で削除するには:
sed -i '/:Poker/d' input
インプレース ( -i
) オプションがシステムで機能しない場合は、次のことができます。
sed '/:Poker/d' input > input.tmp && mv input.tmp input
awk を使用した簡単な例を次に示します。
lineToDelete=$1
awk "NR != $lineToDelete"