一个shell技巧

有时可能要碰到分解$PATH,那就得想法处理它的“:”分隔符。

首先想到的应该是用gawk,如下:

$ echo $PATH | gawk -F: -v OFS=”n” -v num=0 ‘{NF-=num; $1=$1; print}’

恩,这样其实挺麻烦的。有没有更好的技巧呢?当然有,看下面这个:

$ OLDIFS=$IFS; IFS=: ; printf “%sn” $PATH; IFS=$OLDIFS;

这个技巧在ksh下还可以这样用:

$ IFS=”:”; set -A array $PATH; for eachone in ${array[*]}; do echo $eachone; done