logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 20-12-2018 01:55:41

LaFouine
Membre
Distrib. : Debian testing
Noyau : 4.19.0-4-amd64
(G)UI : Xfce
Inscription : 10-04-2017

awk '{print $1}' syntax pour remplacer la variable. ?

Bonjours,

J’utilise awak pour filtrer les champ d'un fichier.


cat fichier.txt | awk  '{print $1}
 



le souci c' est  $1 que je voudrais remplacer par une variable d'une boucle 


L=0
while [ $L -ne 10 ] ;do

Ret=`echo  cat fichier.txt | awk  '{print $L}
((L++))
done

 


Évidement ça miaule ...  je sais pas ce qu'il veux ou si c est juste pas possible ?

Merci d'avance


Debian testing, nvidia 980 gtx sli, cm asurock 16 gb ram cpu i7 4,2 ghz

Hors ligne

#2 20-12-2018 07:19:34

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : awk '{print $1}' syntax pour remplacer la variable. ?

Salut,
J'ai fait un test avec la sortie d'une commande ls

ls -l > fichier.txt


Je ne sais pas ce que tu souhaites comme retour mais voilà une boucle avec quelques corrections

#!bin/bash
L=1
while [ $L -le 9 ]
do
echo test $L
awk  '{print $'$L'}' fichier.txt
((L++))
done



Boucle entre 1 et 9 pour mon cas, pas de point virgule avant "do" et surtout adaptation du print
Kao

Dernière modification par kao (20-12-2018 20:00:22)

Hors ligne

#3 20-12-2018 23:42:24

LaFouine
Membre
Distrib. : Debian testing
Noyau : 4.19.0-4-amd64
(G)UI : Xfce
Inscription : 10-04-2017

Re : awk '{print $1}' syntax pour remplacer la variable. ?

Merci pour le coup de pouce yes.gif

mai pourquoi un 

while [ $L -le 9 ] ; do

n'est pas conseiller  ?
Je débute en bash, donc la question est orienter pour savoir si on peux coder sur une ligne si c' est standard


Debian testing, nvidia 980 gtx sli, cm asurock 16 gb ram cpu i7 4,2 ghz

Hors ligne

#4 21-12-2018 09:02:02

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : awk '{print $1}' syntax pour remplacer la variable. ?

Tu as raison, il est effectivement possible de le faire sur une ligne :
https://openclassrooms.com/fr/courses/4 … es-boucles

Après c'est question une de lisibilté. J'ai tendance à ne pas être radin sur le nombre de ligne. On peut aussi jouer sur l'indentation

#!bin/bash
L=1
while [ $L -le 9 ]
do
      echo test $L
      awk  '{print $'$L'}' fichier.txt
      ((L++))
done

Hors ligne

#5 21-12-2018 09:49:02

empanada
Membre
Distrib. : Debian 11 (Bullseye)
Noyau : 5.10.0-13-amd64
(G)UI : LXDE
Inscription : 19-09-2018

Re : awk '{print $1}' syntax pour remplacer la variable. ?

kao a écrit :

On peut aussi jouer sur l'indentation


J'aime bien aussi utiliser l'indentation pour les boucles et les conditionnels .


"blues are the roots and the other musics are the fruits" . Willie Dixon

Hors ligne

Pied de page des forums