Ich verstehe, dass dies sed
ein Befehl zum Bearbeiten von Textdateien ist.
Meiner Ansicht nach -i
bedeutet dies, dass die Operation an der Datei selbst ausgeführt wird. Ist dies korrekt?
Was ist '1d'
?
In sed
:
-i
Mit dieser Option wird die Eingabedatei direkt bearbeitet
'1d'
Entfernt die erste Zeile der Eingabedatei
Beispiel:
% cat file.txt
foo
bar
% sed -i '1d' file.txt
% cat file.txt
bar
Beachten Sie, dass es in den meisten -i
Fällen eine gute Idee ist, eine Sicherungskopie zu erstellen, während Sie die Option verwenden, damit Sie die Originaldatei im Falle einer unerwarteten Änderung sichern können .
Zum Beispiel, wenn Sie:
sed -i.orig '1d' file.txt
Die ursprüngliche Datei wird beibehalten file.txt.orig
und die geänderte Datei wird beibehalten file.txt
.
-i
zu sehen, was zuerst passiert, und dann-i
die Datei tatsächlich ändern.1. a)
Druckt den Inhalt von
file.txt
; ohne die erste Zeile; auf die Standardausgabe.2. a)
Druckt den Inhalt von
file.txt
; ohne die erste Zeile; zurück infile.txt
; Überschreiben des Originals.2. b)
Erstellt eine Sicherungskopie des Originals (als
file.txt.back
), bevor Änderungen vorgenommen werden. Mit Ausnahme von FreeBSDsed
muss das Suffix (hier.back
) an die-i
Option angehängt werden (im selben Argument kein Leerzeichen zwischen-i
und.back
).3. a)
Druckt den Inhalt von
file.txt
; ohne die zweite Zeile; auf die Standardausgabe.(Wenn Sie eine Zahl angeben, wird die entsprechende Zeile entfernt.)
Auch mit der
-i
Flagge kompatibel .3. b)
Druckt den Inhalt von
file.txt
; alle außer der ersten Zeile ausschließen; auf die Standardausgabe.(Mit anderen Worten, nur die erste Zeile wird gedruckt).
Auch mit der
-i
Flagge kompatibel .3. c)
Druckt den Inhalt von
file.txt
; ohne die letzte Zeile; auf die Standardausgabe.Auch mit der
-i
Flagge kompatibel .quelle
In
sed -h
haben:und 'den Vorgang für die Datei selbst ausführen.' absolut ist es.
Und
man
sagte: 'Sed ist ein Stream-Editor. Ein Stream-Editor wird verwendet, um grundlegende Texttransformationen für einen Eingabestream (eine Datei oder eine Eingabe aus einer Pipeline) durchzuführen. 'als ihre frage,
bedeutet: lösche die erste Zeile in der Datei
"file_name"
an Ort und Stelle und sichere sie in der Datei. (Genau wie die Datei bearbeiten und die erste Zeile direkt löschen.)quelle