Tengo un archivo en el que necesito eliminar todo después del primero ;
en cada línea.
Entonces un archivo como este:
sdfsdsdf;
fsdfsddf;sdfsd;
Resultará en esto:
sdfsdsdf
fsdfsddf
He investigado grep
y sed
. Agradecería una respuesta que incorpore cualquiera de estos comandos.
command-line
scripting
grep
sed
recolector de basura
fuente
fuente
sed 's/;.*//'
otra opción es usar el
cut
comandofuente
Normalmente uso
awk
para cosas como esta:cat a.file | awk -F=";" '{ print $1 }'
Eso tomará cada línea de un archivo e imprimirá el primer grupo antes del delimitador
-F
fuente
cat
.Aquí hay una manera de hacerlo usando GNU
grep
:fuente
grep -Eo '^[^;]+;' filename
casi lo consigue, solo imprime un personaje demasiados.grep -Eo '^[^;]+' filename
casi también lo consigue, pero también imprimirá líneas completas (no vacías) que no tienen ninguna;
.