特定のパターンで始まる値のない行だけを取得しようとしています。
入力ファイル(test_file.txt)
USER1|AR-45233|
USER4|AR-32133|
USER1|45232|
USER1|AF-45233|
USER2|AR-12321|
SYSTEM1|A9-12312|
USER1|AP-67655|
期待される出力(test_filtered.txt)
USER1|45232|
SYSTEM1|A9-12312|
私はこれを試しましたが、効果があるようです。同じ目標を達成するためのより良い方法はありますか?
awk -F "|" '{if ($2!~/AP-/ && $2!~/AR-/ && $2!~/AF-/) {print $0}}' test_file.txt > test_filtered.txt
上記のような基準に合わないラインを抽出して、このように別のファイルに書きたいのですが、そうすることができないので、このように質問します。
awk -F "|" '{if ($2~/AP-/ && $2~/AR-/ && $2~/AF-/) {print $0}}' test_file.txt > test_to_remove.txt
ベストアンサー1
ミラーの使用(https://github.com/johnkerl/miller) はい
mlr --csv --fs "|" --implicit-csv-header --headerless-csv-output filter -x -S '$2=~"^A[RFP]-"' input >output