(追記。2016年6月3日)
cat asty-ch_member.tab | gsed -e 's|\([0-9]{4}\)\.\([0-9]\?\)\.\([0-9]\?\)|\1/\2/\3|g' | less
いや、むしろ、「2016/5/31」=>「2016.5.31」、となってしまった。
まあ、それはそれで構いませんけどね。データの形式が、揃ってればいいんで。
========================================
日付の表示形式を変えたい。
一行の中に出てくる「2016.5.31」という日付表示を、「2016/5/31」に変えたい!
そこで、自分なりに頑張って、シェル芸に取り組んでみました。
要は、sed の使い方なんですけどね。
これでできました! バンザイ!
cat asty-ch_member.tab | gsed -e 's|\(....\)\.\(.\?\)\.\(.\?\)|\1/\2/\3|g' | less
手間取ったのは、sed での正規表現の書き方です。
shell でのワイルドカードの書き方と混同しておりました。
(ただし、まだ、sed での改行がよく分からない・・・)
<参考にしたページ>
sed でのワイルドカードの書き方
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231046/
正規表現 | 意味 |
. |
改行文字以外の任意の1文字 |
* |
直前の1文字の0回以上の繰り返しに一致。直前の文字は正規表現でも構わない |
^ |
行の先頭 |
$ |
行の末尾 |
[ ] |
かっこ内の任意の1文字に一致。ハイフン(-)で範囲指定もできる |
[^ ] |
かっこ内の任意の1文字に不一致。ハイフン(-)で範囲指定もできる |
\+ |
直前の文字の1個以上の繰り返しに一致 |
\? |
直前の文字の0または1文字に一致 |
\{n\} |
直前の文字のn個の繰り返しに一致 |
\{n,\} |
直前の文字のn個以上の繰り返しに一致 |
\{,m\} |
直前の文字のm個以下の繰り返しに一致 |
\{n,m\} |
直前の文字のn個以上,m個以下の繰り返しに一致 |
パターン1\|パターン2 |
パターン1またはパターン2のいずれかに一致 |
\(パターン\) |
パターンをグループ化する。マッチした内容は\1や\2として利用できる |
\ |
正規表現に使われる記号を普通の文字として扱う |