Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/03/2011, à 17: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, à 17: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, à 18: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 smile

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, à 18:17)

Hors ligne

#4 Le 20/03/2011, à 18: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, à 18:38)

Hors ligne

#5 Le 20/03/2011, à 18: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, à 18:59

aduxas

Re : Supprimer du texte a partir d'un mot

Bousky a écrit :

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, à 19: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, à 19:42)

Hors ligne

#8 Le 20/03/2011, à 19: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, à 20: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, à 20:21)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#10 Le 20/03/2011, à 22:12

kyncani

Re : Supprimer du texte a partir d'un mot

Une possibilité en perl tongue

perl -0777 -pi -e 's/onEdge.*//s' nomfichier

Hors ligne