GNU Awk 3.0.6 + multi-byte extension 1.15
今回は 次の 様に データ を 作成し 試してみよう
Pmt> echo "大山 大三郎 987-5646-1232">test Pmt> cat test 大山 大三郎 987-5646-1232
どのようにして参照するか?
Pmt> awk '{ print $2 ,$1, $3 }' test 大三郎 大山 987-5646-1232 Pmt> awk '{ print $0}' test 大山 大三郎 987-5646-1232 Pmt> cat test 大山 大三郎 987-5646-1232 Pmt> awk '{ print $3 ,$2, $1 }' test 987-5646-1232 大三郎 大山
こういう感じです、今度は 空白を tab に 置き換えた 物を作成してみよう
Pmt> vi test
Pmt> cat test
大山 大三郎 987-5646-1232
Pmt> sed l test
\302\347\273\263 \302\347\273\260\317\272\t987-5646-1232$
大山 大三郎 987-5646-1232
文字化け状態では あるが 3つの 部分に わかれている事がわかるでしょう
\
t の 部分が tab という
ことです。そうして
Pmt> cat test 大山 大三郎 987-5646-1232 Pmt> awk '{print $2}' test 大三郎 Pmt> awk -F"\t" '{print $2}' test 987-5646-1232
空白か tab で 区切られた 2番目 は ”大三郎” tab で区切られた 2番目 は ”987-5646-1232”となる 事に 留意されたい。
awk -F
この場合 ”-F” というもので 区切りを 指定する事を 行っている 通常指 定しない場合は 空白か tab ということに なっているようです
Pmt> awk -F"\t" '{print $2}' test
空白とか tab は一般にデリミタと呼ぶようです、以下の場合
Pmt> echo a b c d | awk 'BEGIN {one = 1; two = 2 } > { print $( one + two )}' c Pmt> echo a b c d | awk '{ print $3}' c Pmt> echo a b c d | awk '{ print $(1+2)}' c
3番目が c ということになります
にゃんたろう 拝!
GNU Awk 3.0.6 + multi-byte extension 1.15
2006年12月26日 (火) 23:30:40 JST 作成