条件付きで3番目のカンマの後の行をgrepする方法

条件付きで3番目のカンマの後の行をgrepする方法

3 番目のカンマの後の 4 桁のテキストの行を表示したいと思います。

入力:

123456789012345,00,0000,000
111111111111111,00,0000,0000

出力:

111111111111111,00,0000,0000

答え1

これは以下を使用して実行できますawk:

$ awk -F, 'length($4) == 4' file
111111111111111,00,0000,0000

答え2

つまり一致する3番目のカンマの後の4桁:

awk -F, '$4~/^[0-9]{4}$/' file

答え3

10 進数のみを含む行と、3 番目のコンマの後の行末 (他に何もなく、その後にコンマも許可されない) に一致させるには、次のようにしますgrep

grep -xE '([^,]*,){3}[0-9]{4}' <file

関連情報