#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 > lenouveaufichierDernière modification par Sciensous (Le 12/11/2020, à 15:58)
antiX 19 (Debian Buster) et (L)Ubuntu focal 20.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" lefichiertextepour tester et si c'est OK :
sed -i "s/job034/job245/g" lefichiertexteJe préciserait que le texte à remplacer est encadré de / pour éviter de le remplacer dans d'autres termes.
sed -i "s|/job034/|/job245/|g" lefichiertexteDernière modification par Hizoka (Le 12/11/2020, à 17:11)
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
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 (Debian Buster) et (L)Ubuntu focal 20.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"Welcome to sHell. · eval is evil.
Hors 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.
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne