Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

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 13/05/2022, à 17:01

kevino_linux

[RESOLU] Supprimer chaine de caractères au sein du shell

Bonjour à tous,

J'ai besoin de supprimer une chaine de caractère spécifique au sein d'un de mes fichiers.
Il est composé d'une infinité de ligne, et de 17 colonnes, et la colonne 2 ressemble à ceci :

MotionCorr/job022/Movies_0deg/FoilHole_28182500_Data_28178779_28178781_20220228_204122_fractions_patch_aligned_doseweighted.mrc

J'aimerais supprimer uniquement _patch_aligned_doseweighted à la fin, pour que la colonne devienne MotionCorr/job022/Movies_0deg/FoilHole_28182500_Data_28178779_28178781_20220228_204122_fractions.mrc

J'ai tenté plusieurs choses avec sed, mais j'échoue systématiquement, soit je supprime la ligne entière, soit je supprime tout à partir de "FoilHole".

Toute aide serait la bienvenue, et merci d'avance

Dernière modification par kevino_linux (Le 13/05/2022, à 17:31)

Hors ligne

#2 Le 13/05/2022, à 17:23

kevino_linux

Re : [RESOLU] Supprimer chaine de caractères au sein du shell

Pour être un peu plus précis, et vous expliquer où je bloque voici un exemple d'une ligne entière

000001@J1217/extract/000007369088475821036_FoilHole_28182500_Data_28178779_28178781_20220228_204122_fractions_patch_aligned_doseweighted_particles.mrcs MotionCorr/job022/Movies_0deg/FoilHole_28182500_Data_281787
79_28178781_20220228_204122_fractions_patch_aligned_doseweighted.mrc 1970 1597 -163.233780 56.703899 -102.432137 0.994219 -0.426094 15803.401367 15663.258789 -21.097397 0.000000 0.000000 1 2 1

Comme vous pouvez le voir en gras, il y a deux fois la mention "_patch_aligned_doseweighted" aux colonnes 1 et 2.

La commande sed -e "s|_patch_aligned_doseweighted||g" fichier > fichier modifié me supprime la chaine de caractère sur les 2 colonnes.... tandis que je veux la supprimer seulement sur la colonne 2.

Merci,

Hors ligne

#3 Le 13/05/2022, à 17:30

kevino_linux

Re : [RESOLU] Supprimer chaine de caractères au sein du shell

J'ai finalement réussi avec

sed "s/_patch_aligned_doseweighted.mrc/.mrc/g" fichier > fichier_modifie

Hors ligne

#4 Le 13/05/2022, à 17:32

xubu1957

Re : [RESOLU] Supprimer chaine de caractères au sein du shell

Bonjour,

Au #2 :

000001@J1217/extract/000007369088475821036_FoilHole_28182500_Data_28178779_28178781_20220228_204122_fractions_patch_aligned_doseweighted_particles.mrcs MotionCorr/job022/Movies_0deg/FoilHole_28182500_Data_281787
79_28178781_20220228_204122_fractions_patch_aligned_doseweighted.mrc 1970 1597 -163.233780 56.703899 -102.432137 0.994219 -0.426094 15803.401367 15663.258789 -21.097397 0.000000 0.000000 1 2 1

Tu devrais te servir du Retour utilisable de commande, pour fournir les informations.

Voir règles du forum > balises BB code

Balise CODE :

C'est la balise à utiliser pour donner de longs messages d'erreurs, des contenus de fichiers de configuration, des commandes à taper, etc … Elle permet des messages plus "compacts", et est moins ambiguë que d'autres polices sur certains caractères.

Dernière modification par xubu1957 (Le 13/05/2022, à 17:46)


Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Xubuntu 20.04 LTS - Lenovo T410 -18.04.1 LTS Toshiba Satellite A300  Membre de Linux-Azur

Hors ligne

#5 Le 13/05/2022, à 17:43

Watael

Re : [RESOLU] Supprimer chaine de caractères au sein du shell

kevino_linux a écrit :

J'ai finalement réussi avec

sed "s/_patch_aligned_doseweighted.mrc/.mrc/g" fichier > fichier_modifie

quand il s'agit de travailler sur des colonnes, on peut préférer awk.

Dernière modification par Watael (Le 13/05/2022, à 17:43)


Welcome to sHell. · eval is evil.

Hors ligne