Entiendo que sed
es un comando para manipular archivos de texto.
Desde mi Google, parece que -i
significa realizar la operación en el archivo en sí, ¿es correcto?
¿Qué hay de '1d'
?
Entiendo que sed
es un comando para manipular archivos de texto.
Desde mi Google, parece que -i
significa realizar la operación en el archivo en sí, ¿es correcto?
¿Qué hay de '1d'
?
Respuestas:
En sed
:
-i
la opción editará el archivo de entrada en el lugar
'1d'
eliminará la primera línea del archivo de entrada
Ejemplo:
% cat file.txt
foo
bar
% sed -i '1d' file.txt
% cat file.txt
bar
Tenga en cuenta que, la mayoría de las veces, es una buena idea hacer una copia de seguridad mientras usa la -i
opción para que tenga una copia de seguridad del archivo original en caso de cualquier cambio inesperado.
Por ejemplo, si haces:
sed -i.orig '1d' file.txt
el archivo original se mantendrá como file.txt.orig
y el archivo modificado será file.txt
.
sed '1d' file.txt
Imprime el contenido de file.txt
; excluyendo la primera línea; a la salida estándar.
sed -i '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS
Imprime el contenido de file.txt
; excluyendo la primera línea; copia en file.txt
; sobrescribiendo el original.
sed -i.back '1d' file.txt
Crea una copia de seguridad del original (como file.txt.back
), antes de realizar cambios. Excepto con FreeBSD sed
, el sufijo (aquí .back
) debe adjuntarse a la -i
opción (en el mismo argumento, sin espacio entre -i
y .back
).
sed '2d' file.txt
Imprime el contenido de file.txt
; excluyendo la segunda línea; a la salida estándar.
(Especificar cualquier número eliminará la línea correspondiente).
También compatible con la -i
bandera.
sed '1!d' file.txt
Imprime el contenido de file.txt
; excluyendo todos excepto la primera línea; a la salida estándar.
(En otras palabras, solo se imprime la primera línea).
También compatible con la -i
bandera.
sed '$d' file.txt
Imprime el contenido de file.txt
; excluyendo la última línea; a la salida estándar.
También compatible con la -i
bandera.
En sed -h
tener:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
y 'realizar la operación en el archivo mismo'. absoluto es.
Y man
dijo: 'Sed es un editor de stream. Se utiliza un editor de flujo para realizar transformaciones de texto básicas en un flujo de entrada (un archivo o entrada de una tubería).
como tu pregunta
sed -i '1d' file_name
significa: eliminar la primera línea del archivo "file_name"
en el lugar y hacer una copia de seguridad en el archivo. (al igual que editar archivo y eliminar la primera línea directamente).
-i
ver primero qué sucede y luego usar-i
para cambiar el archivo.