Bash :: Text an die Ausgabe der Datei anhängen

Bash :: Text an die Ausgabe der Datei anhängen

Ich bin ein Neuling im Shell-Scripting, daher ist dies vielleicht eine sehr einfache Lösung, aber ich habe Mühe, sie zum Laufen zu bringen. Ich habe eine Datei mit folgendem Inhalt:

example1.eu 
example2.eu 
example3.eu

Ich versuche, den Inhalt einer Datei in einer einzeiligen Formatierung wie folgt auszugeben.

test.beispiel1.eu,test.beispiel2.eu,test.beispiel3.eu

und so weiter.

Ich habe dies in meinem Skript, kann aber nicht herausfinden, wie ich „Test“ als ersten Eintrag in der Datei anhängen kann.

cat file | xargs | sed -e 's/ /,test./g'

beispiel1.eu,test.beispiel2.eu,test.beispiel3.eu

Bitte um Rat. Danke

Antwort1

Sie können „Einfügen“ verwenden, um ein Trennzeichen festzulegen. Beispiel:

cat file | sed -e 's/^/test./' | paste -sd ','

Bearbeiten: Verbesserte Version (Kommentar von tripleee)

sed file -e 's/^/test./' | paste -sd ','

Antwort2

Dies kann mit dem folgenden Befehl erfolgen awk:

 $ awk '{a=a"test."$0","}END{sub(/,$/,"",a);print a}' file
 test.example1.eu,test.example2.eu,test.example3.eu

Dadurch wird eine Zeichenfolgenvariable erstellt aund jede Zeile und ein Komma an die Zeichenfolge angehängt. Anschließend wird das letzte Komma durch nichts ersetzt und die Zeichenfolge gedruckt.

Vorherige Antwort mit abschließendem Komma:

 $ awk 'BEGIN{ORS=","}{print "test."$0}' file
test.example1.eu,test.example2.eu,test.example3.eu,

Dadurch wird das Trennzeichen für Ausgabedatensätze auf ein Komma gesetzt und anschließend jede Zeile mit test.einem vor der Zeichenfolge stehenden Zeichen gedruckt.

verwandte Informationen