So listen Sie nur durch Kommas getrennte Dateien in einem Verzeichnis auf

So listen Sie nur durch Kommas getrennte Dateien in einem Verzeichnis auf

Also keine Verzeichnisse und keine versteckten Dateien. Nur die Dateien. Das Auflisten nur von Dateien kann mit der folgenden Zeile erfolgen.

ls -p | grep -v /

Nun möchte ich, dass das Ergebnis dieser Zeile durch Kommas getrennt wird.

Antwort1

trSie können es für diesen Job verwenden .

ls -p | grep -v / | tr '\n' ','

Antwort2

Sie können den GNU-Befehl verwenden ls -m. Er druckt alle durch Kommas getrennten Dateien und Verzeichnisse aus.

Antwort3

Die von Thomas vorgeschlagene Lösung funktioniert, fügt aber dem letzten Element ein Komma hinzu (was möglicherweise nicht das ist, was Sie wollen) und löscht die Leerzeichen nach den Kommas. Die folgende Alternative behält die Leerzeichen nach den Kommas bei und fügt nach dem letzten Element kein Komma hinzu:

 ls -1p | grep -v / | xargs echo | sed 's/ /, /g'

Wenn Sie die Leerzeichen zwischen den Elementen entfernen möchten, passen Sie einfach den sed-Ausdruck an:

 ls -1p | grep -v / | xargs echo | sed 's/ /,/g'

(Hinweis für Betrachter, die eine Schriftart verwenden, in der ein kleines „l“ und die Zahl „1“ (eins) gleich aussehen: Die erste an übergebene Option lsist 1, die Zahl, nicht das kleine l.)

Wie Jim L in einem Kommentar anmerkte, funktionieren die obigen Befehle nur für Dateinamen, die keine Leerzeichen enthalten. Die folgenden Befehle umgehen dieses Problem:

 ls -1p | grep -v / | sed 's/$/, /g' | xargs echo | sed 's/,$//g' 

Dadurch werden die Zeilenenden vor der Weitergabe der Liste an durch Kommas ersetzt echo, der letzte Teil entfernt den Befehl am Ende der Liste.

verwandte Informationen