Fügen Sie am Ende der Zeile mit sed
gegeben eine nur-text-Dokument mit mehreren Zeilen wie:
c48 7.587 7.39
c49 7.508 7.345983
c50 5.8 7.543
c51 8.37454546 7.34
Muss ich hinzufügen, einige info 2 Räume nach dem Ende der Zeile, also für jede Zeile, die ich bekommen würde:
c48 7.587 7.39 def
c49 7.508 7.345983 def
c50 5.8 7.543 def
c51 8.37454546 7.34 def
Ich brauche, dies zu tun für Tausende von Dateien. Ich denke, dies ist möglich mit sed, aber nicht wissen, wie. Irgendeinen Hinweis? Könnten Sie auch mir einige link mit einer Anleitung oder eine Tabelle für diese Fälle?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn Sie alle Ihre Dateien in einem Verzeichnis
es zu tun rekursive (GNU find)
können Sie sehen, hier für die Einführung von sed
Andere Möglichkeiten, die Sie verwenden können,
awk
Bash-shell
+;
? Ich benutze immer\;
. Die bash-manpage macht mich nicht klüger.find's
man-Seite. das gleichwertigexargs
NR
, z.B.awk 'NR==3{..}' file
bedeutet, dass für die Linie 3Der Schlüssel ist hier die suchen-und-ersetzen -
s///
Befehl. Hier ersetzen wir das Ende der Zeile$
mit 2 Leerzeichen und die Zeichenfolge.Finden die sed-Dokumentation auf http://sed.sourceforge.net/#docs
sed
ist ein Unix-Dienstprogramm, so dass es verwendet die Unix-Konvention, d.h. das Ende der jeweiligen Zeile mit Carriage Return - CR (^M), während macs verwendet (Line Feed - LF (^L), Windows BTW verwendet, CR,LF. Thepoint ist, dass Sie Links mit dem Unix die EOL-Zeichen. Ich bin kein Mac guru, aber es sollte ein Dienstprogramm, um dieses Problem zu beheben. Auf meiner Linux-box, es istdos2unix
undunix2dos
, aber wenn Sie nicht finden können, ein solches tool, versuchen Sie es mittr '\r' '\f'
um einen ähnlichen Effekt erzielen.