bash スクリプトを使用して出力をls
json 配列にフォーマットすることは可能ですか? 有効な json にするには、ディレクトリとファイルのすべての名前を二重引用符で囲み、カンマで区切り、全体を角括弧で囲む必要があります。つまり、次のように変換します。
jeroen@jeroen-ubuntu:~/Desktop$ ls
foo.txt bar baz
に
[ "foo.txt", "bar", "baz" ]
編集: 私はすべての Linux サーバーで動作するものを強く希望しています。そのため、Python に依存せず、純粋な bash ソリューションを使用します。
ベストアンサー1
ファイル名に改行が含まれていないことが分かっている場合は、jq を使用します。
ls | jq -R -s -c 'split("\n")[:-1]'
jq のフラグの簡単な説明:
-R
入力をJSONではなく文字列として扱います-s
すべての行を配列に結合する-c
コンパクトな出力を作成する[:-1]
出力配列の最後の空文字列を削除します
これには、jq のバージョン 1.4 以降が必要です。うまくいかない場合は、これを試してください:
ls | jq -R '[.]' | jq -s -c 'add'