#1 Le 20/03/2011, à 16:29
- $c0ubid0u
Supprimer du texte a partir d'un mot
Bonjour,
Je souhaite supprimer les derniers caractères d'un fichier a partir d'un mot (mot compris).
Le mot : onEdge
Merci d'avance
Sébastien
Hors ligne
#2 Le 20/03/2011, à 16:34
- slasher-fun
Re : Supprimer du texte a partir d'un mot
Bonjour,
Très moche mais ça peut marcher :
cat tonfichier | cut -d"onEdge" -f1
Hors ligne
#3 Le 20/03/2011, à 17:10
- $c0ubid0u
Re : Supprimer du texte a partir d'un mot
Fonctionne pas :
le délimiteur doit être un caractère simple
Mais bonne idée quand meme
Edit :
J'ai trouver ca :
cat streaming.flv | cut --output-delimiter=onEdge -f1 > fin.txt
Mais le problème c'est que ca m'enlève des partie qui doivent rester et ca laisse aussi certaines partie qui doivent partir ><
Dernière modification par $c0ubid0u (Le 20/03/2011, à 17:17)
Hors ligne
#4 Le 20/03/2011, à 17:38
- aduxas
Re : Supprimer du texte a partir d'un mot
cut agît sur chaque ligne, tandis que tu parles du fichier en entier. C'est ça ce que tu veux faire?
tr '\n' '\a' <streaming.flv |sed 's/onEdge.*//' |tr '\a' '\n'
Dernière modification par aduxas (Le 20/03/2011, à 17:38)
Hors ligne
#5 Le 20/03/2011, à 17:42
- Bousky
Re : Supprimer du texte a partir d'un mot
Pour supprimer toutes les lignes après la première contenant onEdge, puis supprimer ce qui se trouve après onEdge (fichier_sortie doit être vide au début ou ne pas exister) :
while read line ; do
echo "$line" >> fichier_sortie
if [[ "$line" =~ onEdge ]] ; then
break
fi
done < fichier_entrée
sed 's/onEdge.*$//' < fichier_sortie >fichier_sortie
C'est possible de tout faire en une passe avec sed, je ne le connais pas suffisamment.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#6 Le 20/03/2011, à 17:59
- aduxas
Re : Supprimer du texte a partir d'un mot
C'est possible de tout faire en une passe avec sed, je ne le connais pas suffisamment.
ma solution devrait faire exactement ça mais, c'est vrai, il y a 3 passes. sed étant un éditeur de ligne, le traitement de fins de ligne (\n) n'est pas évident. sed remet un \n si t'essayes de l'enlever, et il faut jouer avec l' espace tampon (hold space).
Hors ligne
#7 Le 20/03/2011, à 18:41
- johndo
Re : Supprimer du texte a partir d'un mot
f="$(<fichier_entrée)"
echo "${f%%onEdge*}" > fichier_sortie
Dernière modification par johndo (Le 20/03/2011, à 18:42)
Hors ligne
#8 Le 20/03/2011, à 18:42
- Bousky
Re : Supprimer du texte a partir d'un mot
@ aduxas : j'avais pas vu ton post. Ça doit marcher, mais c'est bourrin, non ? C'est un compilent.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#9 Le 20/03/2011, à 19:21
- Hizoka
Re : Supprimer du texte a partir d'un mot
var=(< ton_fichier)
echo ${var%onEdge*} > un_nouveau_fichier
par exemple...
Dernière modification par Hizoka (Le 20/03/2011, à 19:21)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#10 Le 20/03/2011, à 21:12
- kyncani
Re : Supprimer du texte a partir d'un mot
Une possibilité en perl
perl -0777 -pi -e 's/onEdge.*//s' nomfichier
Hors ligne