gawkのdelimiter指定オプションは-F
仕事でひさびさにシェルスクリプトをいじってたので備忘録をメモ。
エントリータイトルのオプションが今回大活躍しました。
データベースをCSV形式でエクスポートしたテキストファイルを整形してたんですが
タグ部分が記述ルールが何も無い無法地帯で最初困ってましたw
中身はこんな感じ(一部抜粋)
"6","200509230451411.jpg","桜","桜 さくら サクラ ボート 千鳥ヶ淵 東京 春","1","1"
"7","200509230455301.jpg","横浜 ポートサイド","横浜 ポートサイド みなとみらい ","1","1"
左から3番目と4番目のデータ(タイトルとタグ)が曲者でデータ内に余裕でカンマとか使ってるから、csvのdelimiterと被りまくり。
だからsedでcsvのdelimiterをユニークなものに置換してからawkかけました。
cat foobar.txt | sed 's/","/::/g' | gawk -F:: '{print $3,$4}'
awk内のパターンは適当ですが、こんな感じでうまくいきました。ひさびさにやると結構吹っ飛んでて困った。
やっぱ日頃から文字列処理や簡単な処理はシェル使うようにすっべ。
あとはsed, join, cut, pasteあたりをぶん回してこねこねしてました。
そういえば以前購入したオライリーの『詳解シェルスクリプト』がまだ途中までしか読んでないな。忘れずに全部読もう。