Help! while avec awk
Résolu/Fermé
cosmokat
Messages postés
7
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
22 novembre 2008
-
3 nov. 2006 à 09:23
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 3 nov. 2006 à 15:18
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 3 nov. 2006 à 15:18
A voir également:
- Help! while avec awk
- Boucle while batch - Forum Programmation
- Eol while scanning string literal ✓ - Forum Python
- While fscanf ✓ - Forum C
- Factorielle python while ✓ - Forum Programmation
- Awk split ✓ - Forum Shell
8 réponses
cosmokat
Messages postés
7
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
22 novembre 2008
3 nov. 2006 à 11:59
3 nov. 2006 à 11:59
J ai essayé sans while et ç est pareil
FREQ=`/bin/awk -v F="" 'BEGIN NR==2 { i=14 }
$i /^[0-9][0-9]*$/ { F=F"&"$i ; i++ }
END { print F; exit }' /home/omc/CT2000/ExportCT/RITLS`
> awk: syntax error near line 1
> awk: bailing out near line 1
snif !
FREQ=`/bin/awk -v F="" 'BEGIN NR==2 { i=14 }
$i /^[0-9][0-9]*$/ { F=F"&"$i ; i++ }
END { print F; exit }' /home/omc/CT2000/ExportCT/RITLS`
> awk: syntax error near line 1
> awk: bailing out near line 1
snif !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2006 à 12:03
3 nov. 2006 à 12:03
Salut,
Tu peux afficher le contenu de ton fichier "FILE" s'il te plaît, parce que là sans exemple précis c'est pas facile d'évaluer ton code.
Merci ;-))
Tu peux afficher le contenu de ton fichier "FILE" s'il te plaît, parce que là sans exemple précis c'est pas facile d'évaluer ton code.
Merci ;-))
cosmokat
Messages postés
7
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
22 novembre 2008
3 nov. 2006 à 12:16
3 nov. 2006 à 12:16
Voici la ligne 2 du fichier FILE
3 134 AA BB CC 0 1 3 6 14 12800 46486 14 28 29 30 31 32 33 34 35 36 37 38 39 40 DD
Je voudrai obtenir FREQ=28&29&30...&40
3 134 AA BB CC 0 1 3 6 14 12800 46486 14 28 29 30 31 32 33 34 35 36 37 38 39 40 DD
Je voudrai obtenir FREQ=28&29&30...&40
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2006 à 13:28
3 nov. 2006 à 13:28
Re-
Essaie ça (adapte en fonction) :
Essaie ça (adapte en fonction) :
#! /bin/bash FREQ=$(/bin/awk -v G="" 'BEGIN { i=14 } { while ( $i~/^[0-9][0-9]*$/ ) { G=G"&"$i i++ } } END { print G; exit }' /home/jp/tmpfs/FILE.txt) echo "FREQ="$FREQ exitCe qui donne chez moi :
[jp@MDK tmpfs]$ cat FILE.txt ceci est un exemple 3 134 AA BB CC 0 1 3 6 14 12800 46486 14 28 29 30 31 32 33 34 35 36 37 38 39 40 DD fin de l'exemple [jp@MDK tmpfs]$ ./essai.sh FREQ=&28&29&30&31&32&33&34&35&36&37&38&39&40 [jp@MDK tmpfs]$;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cosmokat
Messages postés
7
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
22 novembre 2008
3 nov. 2006 à 14:36
3 nov. 2006 à 14:36
Merci pour la solution en /bin/bash
En fait je voudrai poursuivre en sh
je remarque que c' est l option -v qui pose problème.
Lorsque je remplace /bin/awk par /usr/xpg4/bin/awk
y a plus de pb avec l option -v mais du coup je dois réécrire
la boucle différement et je connais pas la particularité xpg4...
En fait je voudrai poursuivre en sh
je remarque que c' est l option -v qui pose problème.
Lorsque je remplace /bin/awk par /usr/xpg4/bin/awk
y a plus de pb avec l option -v mais du coup je dois réécrire
la boucle différement et je connais pas la particularité xpg4...
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2006 à 14:42
3 nov. 2006 à 14:42
Ben essaie comme ça alors :
#! /bin/sh FREQ=$(/bin/awk 'BEGIN { G="" i=14 } { while ( $i~/^[0-9][0-9]*$/ ) { G=G"&"$i i++ } } END { print G; exit }' /home/jp/tmpfs/FILE.txt) echo "FREQ="$FREQ exit;-))
cosmokat
Messages postés
7
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
22 novembre 2008
3 nov. 2006 à 15:16
3 nov. 2006 à 15:16
Un grand merci jipicy !
Ton script m a permis de ne pas utiliser -v
Et à la différence de $( ) qui pour moi est ` ` ça marche !!!!!!
$ FREQ=`/bin/awk 'BEGIN { F="" ; i=14 }
> { while( $i~/^[0-9][0-9]*$/ ) { F=F"&"$i ; i++ } }
> END{ print F; exit }' /home/omc/TEST/FILE`
$ echo $FREQ
&28&29&30&31&32&33&34&35&36&37&38&39&40
$
Ton script m a permis de ne pas utiliser -v
Et à la différence de $( ) qui pour moi est ` ` ça marche !!!!!!
$ FREQ=`/bin/awk 'BEGIN { F="" ; i=14 }
> { while( $i~/^[0-9][0-9]*$/ ) { F=F"&"$i ; i++ } }
> END{ print F; exit }' /home/omc/TEST/FILE`
$ echo $FREQ
&28&29&30&31&32&33&34&35&36&37&38&39&40
$
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2006 à 15:18
3 nov. 2006 à 15:18
De rien ;-))