bash cat mehrere Dateien
Ich versuche cat
drei Dateien zu erlangen, und eine neue Zeile zu beginnen \n
nach jeder Datei ,ich dachte an etwas wie :
cat f1 f2 f3|tr "\EOF" "\n"
ohne Erfolg.
Was ist der einfachste Weg, das zu erreichen ?
InformationsquelleAutor Lucian Enache | 2012-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
oder
<(echo)
idiom. Irgendwie habe ich verpasst, dass in mehr als einem Jahrzehnt der bash-Skript!Warum funktioniert das? Was bedeutet
<(echo)
stehen?haben Sie einen Blick auf
process substitution
, funktioniert möglicherweise nicht auf Systemen fehlt /dev/fd-DateienInformationsquelleAutor Nahuel Fouilleul
Sobald Sie
cat
die Dateien, es wird kein EOF zwischen diesen und keinen anderen Weg finden, die Grenze, so würde ich vorschlagen, so etwas wiefor file in f1 f2 f3; do cat $file; echo; done
oder, mit Einrückung,InformationsquelleAutor Qnan
EOF
nicht ein Zeichen, noch nicht einmal STRG-D - das ist nur das übliche terminal-Methode für die Anzeige des EOF auf die interaktive Eingabe. So können Sie nicht verwenden, die Werkzeuge für die übersetzung von Zeichen irgendwie ändern.Für diesen einfachen Fall einfachste Weg ist, aufhören, sich sorgen über das versuchen, tun Sie es in einem einzigen
cat
🙂wird den trick tun just fine. Bei einer größeren Anzahl von Dateien kann würdig sein ein script aber ich kann nicht sehen die Notwendigkeit für diese kleine Falle.
Wenn Sie möchten, kombinieren Sie alle diese Ströme für die weitere Verarbeitung, einfach führen Sie diese in einer subshell:
InformationsquelleAutor paxdiablo
ich hatte ein ähnliches problem, was funktioniert am besten für mich ich meine situation war:
InformationsquelleAutor cptPH
Versuchen Sie dies:
cat f1 f2 f3
. Ich schlage vor, Sie zu beheben, oder entfernen Sie diese Antwort.InformationsquelleAutor Dmitry Dubovitsky