重複文字列を含む行を削除する

重複文字列を含む行を削除する

特定のパターン/文字列のファイルを確認し、すべての列に存在する場合はその行を削除したいと思います。

例:

name1   name2   name3   name1   name1   name2   name3
name1   name2   name3   name1   name2   name1   
name2   name1   name1   name2   name3   name1   
name2   name2   name2   name2   name2   

このファイルでは、行4のすべての列に同じ名前が含まれているので、行4を削除したいと思います。

大容量ファイルがあり、awkまたはgrepで列数を手動で定義することはできません。

ベストアンサー1

そしてawk

awk 'NF>1 { for(i=2; i<=NF; i++) if($i != $1) { print; next } } NF<=1' file

sedGNUまたは最近BSDを使用するsed

sed -E '/^[ \t]*([^ \t]+)([ \t]+\1)+[ \t]*$/d' file

おすすめ記事