it-swarm-es.tech

grep: eliminar el texto después del token delimitador

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.

12
garbagecollector

sed es probablemente más fácil y rápido que awk o Perl en esta circunstancia:

sed 's/^\([^;][^;]*\);.*$/\1/' some_file_name
5
Bruce Ediger

otra opción es usar el comando cut

cat a.file | cut -d';' -f1
7
Richm

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

3
Marco Ceppi

Aquí hay una forma de hacerlo usando GNU grep:

grep -Po "^[^;]+(?=;?)" filename