Wenn Sie wissen, dass kein Dateiname Zeilenumbrüche enthält, verwenden Sie jq:
ls | jq -R -s -c 'split("\n")[:-1]'
Kurze Erklärung der Flags zu jq:
-R
behandelt die Eingabe als String statt als JSON-s
fügt alle Zeilen zu einem Array zusammen-c
erzeugt eine kompakte Ausgabe[:-1]
entfernt den letzten leeren String im Ausgabearray
Dies erfordert Version 1.4 oder höher von jq. Versuchen Sie Folgendes, wenn es bei Ihnen nicht funktioniert:
ls | jq -R '[.]' | jq -s -c 'add'
Ja, aber die Eckfälle und die Unicode-Handhabung werden Sie in den Wahnsinn treiben. Delegieren Sie besser an eine Skriptsprache, die dies nativ unterstützt.
$ ls
あ a "a" à a b 私
$ python -c 'import os, json; print json.dumps(os.listdir("."))'
["\u00e0", "\"a\"", "\u79c1", "a b", "\u3042", "a"]