Pages : 1
#1 Le 08/07/2012, à 16:47
- ar barzh paour
[Résolu] traitement espace et awk
bonjour à tous
j'ai un petit script awk qui me pose problème
BEGIN {
FS="|"
}
END {
for (i=1 ; i <= NF ; i++) {
print i
nom=$i
print nom
system("ls -ails " nom)
}
}
le problème est sur la ligne
system("ls -ails " nom)
quand nom qui est un fichier contient une espace
par exemple quand on arrive sur cette valeur "/home/xxx/zenity/form ulaire"
le résultat donne
2
/home/xxx/zenity/form ulaire
ls: impossible d'accéder à /home/xxx/zenity/form: Aucun fichier ou dossier de ce type
ls: impossible d'accéder à ulaire: Aucun fichier ou dossier de ce type
dans un terminal je peux traiter comme ça
ls -ails "form ulaire"
789181 4 -rwxrwxrwx 1 xxx yyy 738 juil. 8 16:45 form ulaire
mais si dans mon script awk je mets
system("ls -ails " "nom")
j'ai comme résultat
1
/home/xxx/zenity/form ulaire
ls: impossible d'accéder à nom: Aucun fichier ou dossier de ce type
Dernière modification par ar barzh paour (Le 08/07/2012, à 19:42)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#2 Le 08/07/2012, à 16:55
- Bousky
Re : [Résolu] traitement espace et awk
Le shell accepte aussi les guillemets simples. Il y a des différences de traitements, mais elles n'interviennent pas ici :
ls -ails 'form ulaire'
Ce qui donne :
system("ls -ails '" nom "'")
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#3 Le 08/07/2012, à 17:01
- ar barzh paour
Re : [Résolu] traitement espace et awk
merci Bousky pour la réponse
j'avaisi essayé plusiurs combinaison dont ( ' $nom "nom" ) sans succès
en mettant dans le script awk le guillemet simple j'ai une erreur
system("ls -ails " '" nom "')
awk: 11: unexpected character '''
une autre idée ?
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#4 Le 08/07/2012, à 17:19
- Bousky
Re : [Résolu] traitement espace et awk
Pourquoi tu ne l'as pas tapé exactement comme je l'ai indiqué ? Les guillemets simples doivent êtres passés au shell et donc se trouver dans une chaine reconnue par awk qui est elle délimitée par des guillemets doubles.
Dernière modification par Bousky (Le 08/07/2012, à 17:26)
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#5 Le 08/07/2012, à 19:41
- ar barzh paour
Re : [Résolu] traitement espace et awk
Dam.... j'ai mal lue ta commande , yeux trop fatigués ,j'aurais du faire un copier/coller
xxx@yyy-desktop:~/zenity$ sh selection
1
/home/xxx/zenity/form ulaire
789181 4 -rwxrwxrwx 1 xxx yyy 738 juil. 8 16:45 /home/xxx/zenity/form ulaire
OK marche impeccable
merci
Dernière modification par ar barzh paour (Le 08/07/2012, à 19:41)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne