Antworten:
Sie können seddazu Folgendes verwenden:
sed -i.bak 's/^/##/' file
Dies ersetzt den Zeilenanfang ( ^) durch ##.
Bearbeitet mit dem -i.bakSchalter seddie Datei direkt, erstellt jedoch eine Sicherungskopie mit der Erweiterung .bak.
sed 's/^\(.*\)$/##\1/', aber das ist viel schöner.
Hier ist eine Lösung für dieses Problem mit Perl
perl -e 'while (<>) {print "##$_"}' < infile > outfile
-pSchalter ist auch nützlich: perl -pe 's/^/##/' infile > outfile. (Es gibt auch den -i[extension]Schalter zum Ersetzen der Zieldatei an Ort und Stelle.) Perldoc.perl.org/perlrun.html#%2a-p%2a
Während wir dabei sind:
gawk -i inplace '{print "##"$0}' infile
Dies verwendet das (vergleichsweise neue) Inplace-Bearbeitungs-Plugin für GNU awk 4.1.0+.
Hier ist ein bashWeg:
while read -r; do printf '##%s\n' "$REPLY"; done < infile > outfile
( In der bashShellread -r funktioniert die Ausführung ohne andere Argumente wie folgt IFS= read -r REPLY.)
Dies ist stilistisch inspiriert von der Perl-Lösung von beav_35, die , wie ich zugeben muss, bei großen Dateien viel schneller ausgeführt wird, da perlzu erwarten ist, dass sie bei der Textverarbeitung effizienter ist als eine Shell.
Sie können Vim im Ex-Modus verwenden:
ex -sc '%s/^/##/|x' file
% Wählen Sie alle Zeilen aus
s Ersatz
x speichern und schließen
Kann mit der Mapping-Funktion von Python und der Umleitung von stdin durchgeführt werden:
$ cat input.txt
lorem ipsum
quick brown fox
hello world
$ python -c 'import sys;print "".join(map(lambda x: "##"+x,sys.stdin.readlines()))' < input.txt
##lorem ipsum
##quick brown fox
##hello world
Speichern Sie die Ausgabe in einer neuen Datei und verwenden Sie sie anstelle der Originaldatei
sed 's/^/##/' -i file. In diesem Fall wäre dies vorzuziehen, da es nicht schief gehen kann. In anderen Fällen kann dieser Befehl mit kombiniert werdendiff -u file.bak file, um die Unterschiede zu sehen (ggf. weiterleitenless). Wenn bestätigt wird, dass es funktioniert, kann das Backup entfernt werden. Sonst könnte es mit einem einfachen restauriert werdenmv file.bak file.