J'essaie de modifier un fichier texte comportant plusieurs lignes ressemblant à ceci:
avaya logs 20171202 000000 (9).txt: 660119211mS CMLOGGING: CALL:2017/12/0111:14,00:00:16,008,203,O,208,208,Jon,,,1,,""n/a,0
Je veux tout supprimer avant où il est dit CALL
sur chaque ligne.
Je pense que la commande sed
peut le faire, mais je ne la connais pas très bien.
Comment puis-je faire ceci?
Vous pouvez utiliser awk
de la manière suivante:
awk -F "CALL" '{print "CALL"$2}' filename
Le résultat est:
CALL:2017/12/0111:14,00:00:16,008,203,O,208,208,Jon,,,1,,""n/a,0
Détails:
-F
ou --field-separator
et définissez CALL comme séparateur de champ.Remarque: vous pouvez rediriger la sortie vers un autre fichier en utilisant:
awk -F "CALL" '{print "CALL"$2}' filename > newfilename
Avec sed:
sed -e 's/.*CALL:/CALL:/' input.txt > output.txt
Si vous souhaitez modifier le fichier d'entrée à la place, ajoutez l'option -i
.