J'ai un fichier dans lequel je dois tout supprimer après le premier ;
sur chaque ligne.
Donc, un fichier comme celui-ci:
sdfsdsdf;
fsdfsddf;sdfsd;
Se traduira par ceci:
sdfsdsdf
fsdfsddf
J'ai examiné grep
et sed
. J'apprécierais une réponse incorporant l'une ou l'autre de ces commandes.
command-line
scripting
grep
sed
Éboueur
la source
la source
sed 's/;.*//'
une autre option consiste à utiliser la
cut
commandela source
J'utilise généralement
awk
pour des choses comme ça:cat a.file | awk -F=";" '{ print $1 }'
Cela prendra chaque ligne d'un fichier et imprimera le premier groupe avant le délimiteur
-F
la source
cat
.Voici un moyen de le faire en utilisant GNU
grep
:la source
grep -Eo '^[^;]+;' filename
presque, il imprime juste un caractère de trop.grep -Eo '^[^;]+' filename
presque, mais il imprimera également des lignes complètes (non vides) qui n'en ont pas;
.