
数行のデータを含む .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
sed
1 行を削除するには、次のようにします。
sed -i '/1000542/d' abc.cvs
ここでd
、 は行を削除し、変更されたテキストを出力するだけでなくファイルを操作するように-i
指示し、は検索するパターンであり、はファイル名です。sed
1000542
abc.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
印刷からスキップします。