219 votes

Quelle est la commande unix permettant d'effacer les N premiers caractères d'une ligne ?

Par exemple, je pourrais vouloir :

tail -f logfile | grep org.springframework | <command to remove first N characters>

Je pensais que tr pourrait avoir la capacité de le faire, mais je n'en suis pas sûr.

331voto

iammichael Points 2789

Utilisez cut . Par exemple, pour supprimer les 4 premiers caractères de chaque ligne (c'est-à-dire commencer au 5e caractère) :

tail -f logfile | grep org.springframework | cut -c 5-

48voto

LB40 Points 4372
sed 's/^.\{5\}//' logfile 

et vous remplacez 5 par le nombre que vous voulez... cela devrait faire l'affaire...

EDITAR si pour chaque ligne sed 's/^.\{5\}//g' logfile

38voto

Ankur Points 2964

Vous pouvez utiliser cut :

cut -c N- file.txt > new_file.txt

-c: caractères

file.txt: fichier en entrée

new_file.txt: fichier de sortie

N-: Les caractères de N à la fin doivent être coupés et sortis dans le nouveau fichier.

Peut aussi avoir d'autres arguments comme : N', 'N-M', '-M' signifiant respectivement nième caractère, nième à mième caractère, premier à mième caractère.

Cette opération sera effectuée sur chaque ligne du fichier d'entrée.

4voto

les2 Points 3854
tail -f logfile | grep org.springframework | cut -c 900-

supprimerait les 900 premiers caractères

cut utilise 900- pour afficher le 900ème caractère à la fin de la ligne

Cependant, lorsque je fais passer tout cela par grep, je n'obtiens rien.

4voto

John B Points 1534

Je pense awk serait le meilleur outil pour cela, car il peut à la fois filtrer et exécuter les fonctions nécessaires de manipulation des chaînes sur les lignes filtrées :

tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'

o

tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X