端末で最初の文字が「A」のCSVファイルの行を一覧表示したいと思います。これを行う簡単な方法はありますか?
ベストアンサー1
次のようなファイルがあるとしましょう。
~$ cat f
1,AA,2
2,BB,2
3, AA, 1
C, BA, 1
単にgrepを使うことができます。
~$ grep "^[^,], *A" f
1,AA,2
3, AA, 1
しかし、同じ正規表現でawkを使用することは可能です。
~$ awk '/^[^,], *A/' f
1,AA,2
3, AA, 1
より良いアプローチは、フィールド区切り記号()を使用し-F','
て2番目のフィールドをテストすることです。
~$ awk -F',' '$2~/^ *A/' f
1,AA,2
3, AA, 1
そしてsedを使用してください:
~$ sed -n '/^[^,], *A/p' f
1,AA,2
3, AA, 1
引用符付きフィールド内にカンマがある場合、これらのコマンドは機能しません。たとえば、次のようになります。
"1,A",AA,A
'1,A',AA,A