テキストファイルから数字を含む特定の行を削除する

テキストファイルから数字を含む特定の行を削除する

数行のデータを含む .csv ファイルがあります。文字列/レコード内の特定の値を検索し、その行自体を削除する必要があります。

例えば:

csvファイル

col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000542,eeee,ffff,gggg,hhhh
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp

1000542 を検索し、その番号を含む行全体を削除する必要があります。

col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp

答え1

sed1 行を削除するには、次のようにします。

sed -i '/1000542/d' abc.cvs

ここでd、 は行を削除し、変更されたテキストを出力するだけでなくファイルを操作するように-i指示し、は検索するパターンであり、はファイル名です。sed1000542abc.cvs

答え2

awkも使えます。

awk '/1000542/ {next}1' infile > outfile

例:

$ awk '/1000542/ {next}1' file
col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp

含まれる行を1000542印刷からスキップします。

関連情報