
Ubuntu 14.04 LTSを16.04 LTSへアップグレードする
Ubuntu 14.04 LT…
bashのブレース展開を利用する際、どうしても出力の区切り文字が空白になってしまう。
これをawkのOFSのように、任意の文字にしたいといった場合どうしたらいいのかと調べたところ、サブシェルで一度リストに入れてしまって、そこでIFSを指定して出力時の区切り文字を指定するという方法がよさそうだ。
以下、実行例。ここでは、区切り文字をコロン(:)にしている。
echo $(set 'ABC'{1..10};IFS=:;echo "$*")
[root@BS-PUB-CENT7-01 ~]# echo $(set 'ABC'{1..10};IFS=:;echo "$*") ABC1:ABC2:ABC3:ABC4:ABC5:ABC6:ABC7:ABC8:ABC9:ABC10
後から置換する方法だと、値にスペースが入っている場合について考える必要があったりするが、この方法ならそれを気にしなくてもよくなる。
[root@BS-PUB-CENT7-01 ~]# echo $(set 'ABC '{1..10};IFS=:;echo "$*") ABC 1:ABC 2:ABC 3:ABC 4:ABC 5:ABC 6:ABC 7:ABC 8:ABC 9:ABC 10
色々と応用がききそうな気がする。
Pingback: コンソール上で回数を指定して文字列を繰り返し出力(リピート)させる | 俺的備忘録 〜なんかいろいろ〜