2017-02-12 7 views
0

Ich habe alle Lösungen ausprobiert, die ich gefunden habe, aber nichts scheint so zu funktionieren, wie es sollte.Fügen Sie Zeichen am Ende jeder Zeile hinzu

Ich habe eine Datei mit Textdaten. Ich muss einige Zeichen am Ende jeder Zeile hinzufügen.

Ich habe schon versucht:

awk '{print $0"XYZ"}' $newfilename-final.txt > $newfilename-XYZ.txt 
perl -nle 'print $_, "XYZ"' $newfilename-final.txt > $newfilename-XYZ.txt 
sed 's/$/XYZ/' $newfilename-final.txt > $newfilename-XYZ.txt 

alle von ihnen XYZ hinzugefügt, aber nicht am Ende jeder Saite, aber in neuen Linien zwischen Streichern.

Wie löst man dieses Problem?

+0

ist man awk Lösung hier – Alex028502

+0

arbeitet und so hat Ihr sed ein – Alex028502

+1

Sie könnten einen Wagenrücklauf am Ende der Zeile haben. 'sed -e 's/\ r // g' -e 's/$ XYZ/g' könnte funktionieren. – iamauser

Antwort

0

Testen Sie Ihr awk-Programm, es funktioniert für mich wie vorgesehen. Ich nehme an, dass das Problem darin besteht, dass Ihre Eingabedatei andere Zeilenumbrüche verwendet als die Standardeinstellungen Ihres Betriebssystems (wahrscheinlich die Windows-Version "CR + LF", wenn Sie unter UNIX oder Mac OS arbeiten). Wenn das der Fall ist, könnte dieser andere Beitrag hilfreich sein: How to convert DOS/Windows newline (CRLF) to Unix newline (\n) in a Bash script?.

+0

Vielen Dank, es hat meine Probleme vollständig behoben! –

0

wenn es jede Zeile

sed 's/[^[:print:]]*$/[Here]&/' YourFile 

Sie kümmern sich um jedes nachlauf nicht druckbare Zeichen vor dem Einsetzen mit dem [^[:print:]]* und & in Ersetzungsmuster

Verwandte Themen