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 12/11/2020, à 15:50

kevino_linux

[Resolu] Remplacer une valeur précise dans une colonne

Bonjour la communauté,

J'ai un soucis que je n'arrive pas à résoudre parfaitement.
J'ai un fichier avec beaucoup de lignes et plusieurs colonnes.
Une ligne se présente comme ceci :

5491.281197   274.917365            1     1.530444    -35.34319 9@Polish/job376/raw/GridSquare_4906266/Data/FoilHole_5926197_Data_4921086_4921088_20190907_1955_fractions_shiny.mrcs MotionCorr/job034/raw/GridSquare_4906266/Data/FoilHole_5926197_Data_4921086_4921088_2
0190907_1955_fractions.mrc

J'aimerai remplacer "job034" par "job245" dans la 7eme colonne.

Sur toutes mes lignes j'ai différents numéros de "job", et quand j'utilise Awk je supprime à chaque fois toutes la valeur de la colonne alors que je veux uniquement changer le "job034" seulement.

Merci à celui / celle qui voudra bien m'éclairer.
Bonne journée

Dernière modification par kevino_linux (Le 13/11/2020, à 14:45)

Hors ligne

#2 Le 12/11/2020, à 15:57

Sciensous

Re : [Resolu] Remplacer une valeur précise dans une colonne

en ligne de commande, pour remplcer TOUS les job034:

sed "s/job034/job245/g" lefichiertexte > lenouveaufichier

Dernière modification par Sciensous (Le 12/11/2020, à 15:58)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#3 Le 12/11/2020, à 17:04

Hizoka

Re : [Resolu] Remplacer une valeur précise dans une colonne

Salut,
@Sciensous :
La redirection ne sert à rien :

sed "s/job034/job245/g" lefichiertexte

pour tester et si c'est OK :

sed -i "s/job034/job245/g" lefichiertexte

Je préciserait que le texte à remplacer est encadré de / pour éviter de le remplacer dans d'autres termes.

sed -i "s|/job034/|/job245/|g" lefichiertexte

Dernière modification par Hizoka (Le 12/11/2020, à 17:11)


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

Hors ligne

#4 Le 12/11/2020, à 17:11

Sciensous

Re : [Resolu] Remplacer une valeur précise dans une colonne

@Hizoka:
redirection car le fichier de départ et long a priori, donc plus facile à vérifier
et pas d'accord pour la suite: pas conforme au cahier des charges de kevino_linux  smile
(job... et non /job.../ à remplacer big_smile )

Dernière modification par Sciensous (Le 12/11/2020, à 17:12)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#5 Le 12/11/2020, à 17:17

kevino_linux

Re : [Resolu] Remplacer une valeur précise dans une colonne

Merci chers amis !!

La proposition de @Sciensous a totalement fait l'affaire.
Merci également à @Hizoka, car ton explication pourra probablement me servir ultérieurement.

Bonne journée big_smile

Hors ligne

#6 Le 12/11/2020, à 18:21

Watael

Re : [Resolu] Remplacer une valeur précise dans une colonne

limiter la modification au 7e champ :

awk '{gsub("job034","job245",$7)}1' "$fichier"

Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#7 Le 12/11/2020, à 19:10

Hizoka

Re : [Resolu] Remplacer une valeur précise dans une colonne

Si c'est good, ajoute un [Résolu] dans ton titre.


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

Hors ligne