min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

awk の正規表現を実例で手に覚えさせる

こんなファイルがある

$ cat exif_5001-10000_01.txt

f:id:min117:20190324221700p:plain

「写真名.jpg」exif日付」と並んでいる。各列はスペースで区切られている。

 

ここから exif日付(2列目=西暦日付)がある行だけを取り出したい。 

なかには exif日付が複数ある行もあるが、その場合も2列目だけを取り出す。

 

min117.hatenablog.com

 

awk正規表現やる。

 

 

 

手に覚えさせる

cat exif_5001-10000_01.txt | head -n 999 | awk '{print $0}'

cat exif_5001-10000_01.txt | head -n 999 | awk '{if(ここに正規表現){print $0}}'

cat exif_5001-10000_01.txt | head -n 999 | awk '{if($2 ~ /ここに正規表現/){print $0}}'

cat exif_5001-10000_01.txt | head -n 999 | awk '{if($2 ~ /^20.*/){print $0}}'

 

できた。

f:id:min117:20190324221749p:plain

あとはこれをファイルに落として、1列目をsrc、2列目をdstとして、ファイル名変更(mv $src $dst)できるといい。

あとで試す。

 

awkほんと最高。

min117.hatenablog.com

 

 

f:id:min117:20190324215628p:plain

min117.hatenablog.com

 

www.kt.rim.or.jp