Tengo un archivo que contiene las siguientes líneas:
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
¿Cómo puedo eliminar la línea "SUKsoft:"?
Esta línea podría estar en cualquier lugar del archivo (comenzando como está ahora o en el medio).
¿Existe un comando para hacer esto?
Respuesta1
Aeliminarel uso de la línea
sed -i '/SUKsoft:\s*$/d' your_file
Ejemplo
% cat foo
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
% sed -i '/SUKsoft:\s*$/d' foo
% cat foo
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
Respuesta2
Estos son los pasos para eliminar la línea deseada:
$ sed 's/SUKsoft: *$//' file.txt
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
Supongo que file.txt
contiene las líneas.
O,
$ sed 's/SUKsoft: *$//; /^$/d' file.txt
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
no deja nadablancolínea.
Para editar el archivo puedes usar,
sed -i 's/SUKsoft: *$//' file.txt
o
sed -i 's/SUKsoft: *$//; /^$/d' file.txt
según su necesidad.
VerABLa respuesta es donde se hace de manera más compacta. Gracias aComodín.
Respuesta3
grep
busca líneas que satisfagan un patrón. grep -v
descartesLíneas que satisfacen un patrón.
grep -v '^SUKsoft: *$'
El patrón es: líneas que comienzan ( ^
) con SUKsoft:
, posiblemente seguidas de espacios pero nada más hasta el final de la línea ( $
).
Respuesta4
A juzgar por tupublicar no fuente crudano hay espacio ni secuencia de espacios después de "SUKsoft:", sin embargo, para estar seguro, este comando se encargará de los que estén presentes.
Usando Perl:
perl -ne '!/^SUKsoft: *$/&&print' input
!/^SUKsoft:$/&&print
: si la línea actual no coincide con el patrón^SUKsoft: *$
, que coincide con una línea que comienza conSUKsoft:
una cadena seguida de cero o más espacios, imprime la línea;
% cat input
SUKsoft:
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW
% perl -ne 'print unless /^SUKsoft: *$/' input
SUKsoft: App-Conduct_Risk_Comment
SUKsoft: App-Conduct_Risk_R
SUKsoft: App-Conduct_Risk_RW