¿Cómo borrar la línea 7 de un archivo en Bash?
He intentado
$ sed -i '7d' ~/demo
error:sed: 1: "~/demo": command a expects \ followed by text
¿Cómo borrar la línea 7 de un archivo en Bash?
He intentado
$ sed -i '7d' ~/demo
error:sed: 1: "~/demo": command a expects \ followed by text
Desde man sed
:
SYNOPSIS
sed [-Ealnru] command [-I extension] [-i extension] [file ...]
Por lo tanto, si utiliza -i
también es necesario especificar una extensión para el archivo de copia de seguridad. Si no quiere que se cree un archivo de copia de seguridad pero sigue editando en el archivo, utilice ''
.
sed -i '' '7d' ~/demo
Para tomar el número de la línea a eliminar de una variable, utilice
DELETE_LINE=7
sed -i '' "${DELETE_LINE?}d" ~/demo
$(VAR?}
hace que el shell lance un error si la variable no está establecida. Esto evita que se ejecute el comando sin un número de línea (que borraría todas las líneas).
PD: Es interesante, sed '7d' -i '' ~/demo
no funciona (aunque la sinopsis da a entender que debería hacerlo). sed -e '1d' -i '' ~/demo
sin embargo, lo hace.
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.