#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
(job... et non /job.../ à remplacer )
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
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