1 votos

¿Cómo borrar la línea 7 de un archivo en Bash con sed?

¿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

1voto

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.com

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.

Powered by:

X