Capisco che sedè un comando per manipolare file di testo.
Dal mio Google, sembra che -isignifichi eseguire l'operazione sul file stesso, è corretto?
Che dire '1d'?
Capisco che sedè un comando per manipolare file di testo.
Dal mio Google, sembra che -isignifichi eseguire l'operazione sul file stesso, è corretto?
Che dire '1d'?
Risposte:
In sed:
-i L'opzione modifica il file di input sul posto
'1d' rimuoverà la prima riga del file di input
Esempio:
% cat file.txt
foo
bar
% sed -i '1d' file.txt
% cat file.txt
bar
Si noti che, la maggior parte delle volte è una buona idea eseguire un backup mentre si utilizza l' -iopzione in modo da avere il backup del file originale in caso di modifiche impreviste.
Ad esempio, se lo fai:
sed -i.orig '1d' file.txt
il file originale verrà mantenuto come file.txt.orige il file modificato sarà file.txt.
sed '1d' file.txt
Stampa il contenuto di file.txt; esclusa la prima riga; allo standard output.
sed -i '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS
Stampa il contenuto di file.txt; esclusa la prima riga; di nuovo in file.txt; sovrascrivendo l'originale.
sed -i.back '1d' file.txt
Crea un backup dell'originale (come file.txt.back), prima di apportare modifiche. Ad eccezione di FreeBSD sed, il suffisso (qui .back) deve essere collegato -iall'opzione (nello stesso argomento, nessuno spazio tra -ie .back).
sed '2d' file.txt
Stampa il contenuto di file.txt; esclusa la seconda riga; allo standard output.
(La specifica di qualsiasi numero rimuoverà la riga corrispondente).
Compatibile anche con la -ibandiera.
sed '1!d' file.txt
Stampa il contenuto di file.txt; escluso tutto tranne la prima riga; allo standard output.
(In altre parole, viene stampata solo la prima riga).
Compatibile anche con la -ibandiera.
sed '$d' file.txt
Stampa il contenuto di file.txt; esclusa l'ultima riga; allo standard output.
Compatibile anche con la -ibandiera.
In sed -havere:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
e 'esegui l'operazione sul file stesso.' assolutamente è.
E mandisse: 'Sed è un editor di stream. Un editor di flussi viene utilizzato per eseguire trasformazioni di testo di base su un flusso di input (un file o input da una pipeline). "
come tua domanda,
sed -i '1d' file_name
significa: elimina la prima riga nel file presente "file_name"e esegui il backup su file. (proprio come modifica file ed elimina direttamente la prima riga.)
-ivedere cosa succede prima, quindi utilizzare-iper modificare effettivamente il file.