Ich möchte mich dem Ergebnis von ls -1
in eine Zeile einfügen und sie mit einem beliebigen Zeichen abgrenzen.
Gibt es irgendwelche Standard-Linux-Befehle, mit denen ich dies erreichen kann?
Ich möchte mich dem Ergebnis von ls -1
in eine Zeile einfügen und sie mit einem beliebigen Zeichen abgrenzen.
Gibt es irgendwelche Standard-Linux-Befehle, mit denen ich dies erreichen kann?
ls
erzeugt eine Spaltenausgabe, wenn sie mit einer Leitung verbunden ist, so dass die -1
ist überflüssig.
Hier ist eine weitere Perl-Antwort, die das builtin join
Funktion, die kein Begrenzungszeichen hinterlässt:
ls | perl -F'\n' -0777 -anE 'say join ",", @F'
Das Obskure -0777
sorgt dafür, dass Perl alle Eingaben liest, bevor es das Programm ausführt.
sed-Alternative, die kein Begrenzungszeichen am Ende hinterlässt
ls | sed '$!s/$/,/' | tr -d '\n'
ls
hat die Möglichkeit -m
um die Ausgabe zu begrenzen mit ", "
ein Komma und ein Leerzeichen.
ls -m | tr -d ' ' | tr ',' ';'
dieses Ergebnis mit der Pipeline zu tr
um entweder das Leerzeichen oder das Komma zu entfernen, können Sie das Ergebnis wieder nach tr
um das Begrenzungszeichen zu ersetzen.
In meinem Beispiel ersetze ich das Begrenzungszeichen ,
mit dem Begrenzungszeichen ;
ersetzen. ;
mit was auch immer ein Zeichen als Begrenzungszeichen Sie bevorzugen, da tr nur das erste Zeichen in den Zeichenfolgen berücksichtigt, die Sie als Argumente übergeben.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.