改行に置換するためのワンライナー集(tr/sed/perl)

ある文字を改行「に」置換する方法を紹介します。

事例:$PATHの中身が長くて見にいので、":"を改行に置換したい

$ echo $PATH
/Users/DQNEO/.rbenv/bin:/Users/DQNEO/.rbenv/shims:/Users/DQNEO/.plenv/bin:/Users/DQNEO/.plenv/shims:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/Users/DQNEO/bin:/usr/bin:/bin:/usr/sbin:/sbin
横に長いので、改行で区切りたい!

trで置換

こういう場合は、trコマンドを使うのが一番簡単です。
$ echo $PATH | tr ':' '\n'
/Users/DQNEO/.rbenv/bin
/Users/DQNEO/.rbenv/shims
/Users/DQNEO/.plenv/bin
/Users/DQNEO/.plenv/shims
/usr/local/opt/coreutils/libexec/gnubin
/usr/local/bin
/Users/DQNEO/bin
/usr/bin
/bin
/usr/sbin
/sbin

sedで置換

$ echo $PATH | sed 's/:/\n/g'
ただしMacOSX のsedの場合、これでは動きません。GNU sedを使いましょう。
"Homebrew を使って OSX に GNU sed を入れる - おともだちティータイム"

Perlで置換

PerlならMac / Linux などOS関係なく同じ挙動なので安心です。
$ echo $PATH | perl -pe 's/:/\n/g'
カテゴリ: