awk
grep
regex
stringOperation

awk or grep > 13文字目が0となる行を取得する(2010年代向け) > awk '($1 ~ /201.....,...0,/)' infile.csv

動作環境
Ubuntu 16.04.3 LTS desktop amd64
tmux 2.1-3build1
Python 2.7.12
Python 3.5.2
awk v1.2

仕様

以下のファイルがあるとする。

infile
20160801,0040,A
20160801,0045,0040,
20160801,0050,C
20160801,0055,D
20160801,0000,E
20160801,0006,D
  • 2010年代のデータ
  • 13文字目が0となるデータを取得したい
    • 3行目を例にとると、0050の最後の0
  • カンマは残す

どうするか?

参考

https://stackoverflow.com/questions/17001849/awk-partly-string-match-if-column-word-partly-matches

http://www.kt.rim.or.jp/~kbk/gawk-30/gawk_5.html

情報感謝です。

awk版

$ awk '($1 ~ /,...0,/)' infile.csv 
20160801,0040,A
20160801,0045,0040,
20160801,0050,C
20160801,0000,E

余分な行も表示された。

以下の場合、2010年代のデータに限っては抽出できそう。
(** 2020年代のデータ抽出には対応しない**)

awk '($1 ~ /^201.....,...0,/)' infile.csv 
20160801,0040,A
20160801,0050,C
20160801,0000,E

grep版

$ cat infile.csv | grep '^201.....,...0,'
20160801,0040,A
20160801,0050,C
20160801,0000,E

参考: grepでこういう時はどうする?

情報感謝です。