Wie man Text am Ende jeder Zeile in Unix hinzufügt
Ich bin dabei bestimmte text-Verarbeitung und schließlich in der Lage, eine Datei so etwas wie dieses
india
sudan
japan
france
nun möchte ich einen Kommentar hinzufügen, in der oben genannten Datei wie in der endgültigen Datei, es sollte so etwas wie
india | COUNTRY
sudan | COUNTRY
japan | COUNTRY
france | COUNTRY
wie einen gleichen Kommentar über die gesamte Datei. Wie mache ich das?
InformationsquelleAutor der Frage user2647888 | 2014-04-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es viele Möglichkeiten:
sed
: ersetzen$
(end of line) mit dem angegebenen text.awk
: drucken Sie die Linie plus den angegebenen text.Schließlich in Reine
bash
: Lesen Sie Zeile für Zeile und drucken Sie es zusammen mit dem vorgegebenen text. Hinweis: dies ist entmutigt, als erklärt Warum ist die Verwendung einer shell-Schleife für die Verarbeitung von text als schlechte Praxis?InformationsquelleAutor der Antwort fedorqui
Für eine mehr verschleierte Ansatz:
InformationsquelleAutor der Antwort William Pursell
Anderen
awk
InformationsquelleAutor der Antwort Jotne
Können Sie auch
xargs
mitecho
:Dadurch wird
xargs
nehmen Sie jede Zeile der Eingabe und geben es eins zu einem Zeitpunkt† der angegebeneecho
Befehl ein, und ersetzen die%
(oder was auch immer Zeichen, das Sie wählen) mit der Eingabe-Zeile.† standardmäßig
xargs
passieren mehrere Zeilen der Eingabe eines einzigen Befehls, hängt Sie alle auf seiner Liste von Argumenten. Aber die Angabe-I %
machtxargs
setzen Sie den Eingang an der angegebenen Stelle in den Befehl ein, und nur eine Zeile gibt, in einer Zeit, laufenecho
so oft wie erforderlich.InformationsquelleAutor der Antwort Smylers