![文字列にawkを使用する[閉じる]](https://linux33.com/image/34767/%E6%96%87%E5%AD%97%E5%88%97%E3%81%ABawk%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
端末で最初の文字が「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