Hack Your Design!

コマンドラインで複数行を1行にまとめる

やりたかったことは、コマンドラインで複数行の標準入力を受け取ってそれを1行にカンマ区切りにして出力すること。

$ cat text
aaaa
bbbb
cccc

$ cat text | tr '\n' ','
aaaa,bbbb,cccc,%

こんな感じでtrを使って改行コードを置換してやればカンマ区切りで1行にできる。

もともと

もともとやりたかったのはこんな感じのこと。

$ 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をGETしてそれをjqでパースして出たリストをカンマ区切りで出力する、みたいなやつ。

参考

  • このエントリーをはてなブックマークに追加
comments powered by Disqus