- 公開日
コマンドラインで複数行を1行に連結する
やりたかったこととしては、コマンドラインで複数行の標準入力を受け取ってそれを1行にカンマ区切りにして出力すること。
$ cat text
aaaa
bbbb
cccc
$ cat text | tr '\n' ','
aaaa,bbbb,cccc,%
こんな感じで tr
を使って改行コードを置換してやればカンマ区切りで1行に連結できる。
JSONをパースして連結する
もともとやりたかったのはこんな感じのこと。
$ echo '{ "employees":[{"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter","lastName":"Jones"} ] }' | jq '.employees[] .firstName' | tr '\n' ',' | awk '{ print "result = [" $1 "]" }'
result = ["John","Anna","Peter",]
curlでJSONをHTTP GETしてそれを jq
でパースして出たリストをカンマ区切りで出力する、みたいなやつ。