やり方はたくさんあるので、お好きなものをどうぞ。
未経験の子に$PATH
の概念を教えて実際に出力してもらった時に、デリミタ:
で改行する方法を教えました。
ワンライナーって色々なやり方があるのですが、皆様はどんな流儀をお持ちでしょうか。
私はAWKが好きで、なんでもAWKでやりたくなっちゃいます。
sed
いきなりですが、短く書けますし、sedが一番良いと思います。
sed 's/:/\n/g' <<< $PATH
trを使って書けばよりシンプルです。
tr ':' "\n" <<< $PATH
Ruby
何でもRubyで書かないと気がすまない人っていますか?
ruby -F: -ane 'puts $F' <<< $PATH
これは少し説明が必要かもしれないですね。-F
のオプションでデリミタ−を設定し、なおかつauto splitのオプション-a
をつけることにより、自動的に$F = $_.split
を実行します。
つまりこういうことです。
ruby -ne 'puts $_.split(":")' <<< "$PATH"
Python
Pythonはよくわからないので、これが一般的な感じか不安はありますが、argvを利用するためにsysをimportする必要があり、記述が長くなるのが欠点ですね。
python -c 'import sys; print "\n".join(sys.argv[1].split(":"))' "$PATH"
AWK
AWK好きです。ターミナル上での簡易なテキスト処理ならAWK最強です。しかし、for文とかwhile文とか書きたくないんですよね・・・。
awk -F ':' '{ for(i = 1; i <= NF; i = i + 1) print $i }' <<< $PATH
とか
awk '{ split($0,arr,":"); for(var in arr) print arr[var] }' <<< $PATH
ただし、上記のsedでやったような考え方でやることもできます。
awk '{ if (gsub(/:/ ,"\n")) print }' <<< $PATH
ですね。