Jika Anda mengetahui bahwa tidak ada nama file yang berisi baris baru, gunakan jq:
ls | jq -R -s -c 'split("\n")[:-1]'
Penjelasan singkat tentang flag ke jq:
-R
memperlakukan input sebagai string, bukan JSON-s
menggabungkan semua baris menjadi array-c
membuat keluaran yang ringkas[:-1]
menghapus string kosong terakhir dalam larik keluaran
Ini membutuhkan jq versi 1.4 atau lebih baru. Coba ini jika tidak berhasil untuk Anda:
ls | jq -R '[.]' | jq -s -c 'add'
Ya, tetapi kasing sudut dan penanganan Unicode akan membuat Anda naik tembok. Lebih baik mendelegasikan ke bahasa skrip yang mendukungnya secara bawaan.
$ ls
あ a "a" à a b 私
$ python -c 'import os, json; print json.dumps(os.listdir("."))'
["\u00e0", "\"a\"", "\u79c1", "a b", "\u3042", "a"]