web-dev-qa-db-fra.com

Grep - Supprimer du texte après le jeton de délimiteur

J'ai un fichier dans lequel j'ai besoin d'éliminer tout après le premier ; sur chaque ligne.

Donc un fichier comme celui-ci:

sdfsdsdf;
fsdfsddf;sdfsd;

Entraînera cette question:

sdfsdsdf
fsdfsddf

J'ai regardé dans grep et sed. J'apprécierais une réponse incorporant l'une de ces commandes.

12
garbagecollector

une autre option consiste à utiliser la commande cut

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

J'utilise généralement awk pour des choses comme ceci:

cat a.file | awk -F=";" '{ print $1 }'

Cela prendra chaque ligne d'un fichier et imprimera le premier groupe avant le délimiteur -F

3
Marco Ceppi

Voici un moyen de le faire en utilisant GNU grep:

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