Pokud víte, že žádný soubor neobsahuje nové řádky, použijte jq:
ls | jq -R -s -c 'split("\n")[:-1]'
Krátké vysvětlení příznaků k jq:
-R
zachází se vstupem jako s řetězcem namísto JSON-s
spojí všechny řádky do pole-c
vytváří kompaktní výstup[:-1]
odstraní poslední prázdný řetězec ve výstupním poli
To vyžaduje verzi 1.4 nebo novější jq. Pokud vám to nefunguje, zkuste toto:
ls | jq -R '[.]' | jq -s -c 'add'
Ano, ale rohová pouzdra a manipulace s Unicode vás vyženou na zeď. Je lepší delegovat skriptovací jazyk, který jej nativně podporuje.
$ ls
あ a "a" à a b 私
$ python -c 'import os, json; print json.dumps(os.listdir("."))'
["\u00e0", "\"a\"", "\u79c1", "a b", "\u3042", "a"]