GNU/Linux >> Linux の 問題 >  >> Linux

bash `ls` 出力を json 配列に変換します

ファイル名に改行が含まれていないことがわかっている場合は、jq:を使用してください:

ls | jq -R -s -c 'split("\n")[:-1]'

jq へのフラグの簡単な説明:

  • -R 入力を JSON ではなく文字列として扱います
  • -s すべての行を配列に結合
  • -c コンパクトな出力を作成します
  • [:-1] 出力配列の最後の空の文字列を削除します

これには、バージョン 1.4 以降の jq が必要です。うまくいかない場合は、これを試してください:

ls | jq -R '[.]' | jq -s -c 'add'


はい。ただし、まれなケースと Unicode の処理により、壁を乗り越えることができます。ネイティブでサポートされているスクリプト言語に委譲する方がよいでしょう。

$ ls
あ  a  "a"  à  a b  私
$ python -c 'import os, json; print json.dumps(os.listdir("."))'
["\u00e0", "\"a\"", "\u79c1", "a b", "\u3042", "a"]

Linux
  1. ツリーコマンドの出力をJson形式に変換しますか?

  2. 配列のBash配列?

  3. Bashスクリプト:コマンド出力の各行を配列内の値に割り当てる方法は?

  1. Bashは\xc3\ x89をÉに変換しますか?

  2. 例を含む Bash 配列

  3. コマンドの出力をBashを使用して列ごとに分割しますか?

  1. bash で日付形式を変換する

  2. 出力を文字列に変換する

  3. bash のテキスト文字列を配列に変換する