特定の列.csvからXを含む行を削除する

特定の列.csvからXを含む行を削除する

現在、次の方法を使用して、以下を含むすべてのメールを削除します。EXAMPLE

sed -i '/EXAMPLE/d' newname.csv

EXAMPLEただし、これによりすべての列の行が削除されます。EXAMPLE2番目の列に含まれる行だけを削除したいと思います。列はタブで区切られます。 (下記例)

pa**s-***c.com  support@n**.com George Ka*****os    Athens  Athens  1****   GREECE

タブの問題のために試してみましたが、操作中に何も機能しなかったため、.txtを上書きし、列は次のようになります。

"pak**o.asia","jav***[email protected]","T**iq Ja**id","Rajan Pur","punjab","33***0","PAKISTAN"

ベストアンサー1

grep -v '^[^\t]*\t[^\t]*EXAMPLE' <newname.csv >outfile

しかし、テキストを使用する必要があるかもしれません。<タブ>そこにある文字は、grep使用する文字によって異なります。

以下も同様ですsed。使用すると、-i特定のファイルシステムのセキュリティリスクが発生することに注意してください。

sed -i '/^[^\t]*\t[^\t]*EXAMPLE/d' ./file

それとも少し難しいかもしれません。

sed -i 'h;s/\t/\n/2;/\t.*EXAMPLE.*\n/d;g' ./file

コンマ付きのデータの例:

sed -i '/^[^,]*,[^,]*EXAMPLE/d' ./file

全行を削除EXAMPLE最初のカンマの後と別のコンマの前に発生します。

おすすめ記事