Tengo un archivo en el que necesito eliminar todo después del primer ;
en cada línea.
Entonces, un archivo como este:
sdfsdsdf;
fsdfsddf;sdfsd;
Resultará en esto:
sdfsdsdf
fsdfsddf
He examinado grep
y sed
. Agradecería una respuesta que incorpore cualquiera de estos comandos.
sed
es probablemente más fácil y rápido que awk o Perl en esta circunstancia:
sed 's/^\([^;][^;]*\);.*$/\1/' some_file_name
otra opción es usar el comando cut
cat a.file | cut -d';' -f1
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
Aquí hay una forma de hacerlo usando GNU grep
:
grep -Po "^[^;]+(?=;?)" filename