ふと、コンソール上で各行の内容を配列の形で出力させることができないかと思ったので、やってみることにした。 とりあえず、条件演算子(三項演算子)を使って初回のみカンマなし、次回以降はカンマありで出力させることで対応が行える。
awk {a=a?a","q$0q:q$0q}END{print "["a"]"}' q="'"
awk '!x[$0]++{a=a?a","q$0q:q$0q}END{print "["a"]"}' q="'" #重複を除外する場合
blacknon@BS-PUB-UBUNTU-01:~$ echo {a..z} {a..z} | tr -d ' ' | grep -o . | awk '{a=a?a","q$0q:q$0q}END{print "["a"]"}' q="'"
['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
blacknon@BS-PUB-UBUNTU-01:~$
blacknon@BS-PUB-UBUNTU-01:~$ # 重複した値は除外する場合
blacknon@BS-PUB-UBUNTU-01:~$ echo {a..z} {a..z} | tr -d ' ' | grep -o . | awk '!x[$0]++{a=a?a","q$0q:q$0q}END{print "["a"]"}' q="'"
['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
blacknon@BS-PUB-UBUNTU-01:~$
blacknon@BS-PUB-UBUNTU-01:~$ # 1回ごとの出力をさせる
blacknon@BS-PUB-UBUNTU-01:~$ echo {1..10} | tr ' ' '\n' | awk '!x[$0]++{a=a?a","q$0q:q$0q;print "["a"]"}' q="'"
['1']
['1','2']
['1','2','3']
['1','2','3','4']
['1','2','3','4','5']
['1','2','3','4','5','6']
['1','2','3','4','5','6','7']
['1','2','3','4','5','6','7','8']
['1','2','3','4','5','6','7','8','9']
['1','2','3','4','5','6','7','8','9','10']
※上記で使っている条件演算子(三項演算子)についてだが、以下のようなモノになる。
awk '{条件 ? 真のときに取る値 : 偽のときに取る値}'