列に基づいて行をフィルタリングする方法は?

列に基づいて行をフィルタリングする方法は?

基本的な質問ならすみません。私はLinuxを頻繁に使用しませんが、フィルタリングしたい13GBファイルがあります。

123個の列がありますが、.75列にaのみの行を削除したいと思います。

私はこれを行う方法を研究してきましたが、これまでは次のことを行いました。

awk '$75 !~/./ {print $0}' oldfile.txt > newfile.txt

私がしっかりしているのか?実行すると空のファイルが出力されます。

答え1

努力する

awk '$75 != "." ' oldfile.txt > newfile.txt

これは75列の正確な点と一致します。

あなたは何をしましたか?

awk '$75 !~/./ {print $0}'

任意の文字とは異なる文字に対して列75を一致させようとします(正規表現一致.)。

より具体的に

awk '$75 ~ /./ ' 

75列に1つ以上の文字を持つすべての行(または75以上の列がある場合はすべての行)と一致します。

関連情報