A voir également:
- [Shell] Extraction chaîne caractère
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractère spéciaux mac clavier - Guide
4 réponses
Sinon cut fait très bien l'affaire si les ; sont des déléminteurs et que le nombre de champs a un sens.
[pierre@localhost ~]$ cut -d\; -f6 ./fitest.txt
P
[pierre@localhost ~]$
Attention de protéger le ; par l'antislash.
Le truc classique
[pierre@localhost ~]$ cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
....
[pierre@localhost ~]$ cut -d\; -f6 ./fitest.txt
P
[pierre@localhost ~]$
Attention de protéger le ; par l'antislash.
Le truc classique
[pierre@localhost ~]$ cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
....
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
27 mai 2008 à 14:03
27 mai 2008 à 14:03
Salut,
pas d'espace avant et après le signe égal
pas d'espace avant et après le signe égal
root@debian:~# cat fic.txt 7894122;;ALL;192007;192007;P;A;192008 root@debian:~# VAR=`cat fic.txt | awk -F";" '{print $6}'` root@debian:~# echo $VAR P root@debian:~#
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
27 mai 2008 à 14:40
27 mai 2008 à 14:40
Re,
root@debian:~# cat fic.txt 7894122;;ALL;192007;192007;P;A;192008 root@debian:~# cat p.sh #!/bin/bash VAR=`cat fic.txt | awk -F";" '{print $6}'` if [ $VAR = 'P' ] then echo "ça marche" else echo "ça ne marche pas" fi root@debian:~# sh p.sh ça marche root@debian:~# sed -i 's/P/Z/' fic.txt root@debian:~# cat fic.txt 7894122;;ALL;192007;192007;Z;A;192008 root@debian:~# cat p.sh #!/bin/bash VAR=`cat fic.txt | awk -F";" '{print $6}'` if [ $VAR = 'P' ] then echo "ça marche" else echo "ça ne marche pas" fi root@debian:~# sh p.sh ça ne marche pas
Oui, c'est ce que je voulais répondre : attention de bien placer des espaces entre chaque élément [ '$VAR" = 'P' ] et de protéger par quote ou guillemets.
[pierre@localhost ~]$ VAR=$(cut -d\; -f6 ./fitest.txt)
[pierre@localhost ~]$ if [ "$VAR" = "P" ]
> then
> echo VRAI;
> else
> echo FAUX
> fi
VRAI
[pierre@localhost ~]$
[pierre@localhost ~]$ VAR=$(cut -d\; -f6 ./fitest.txt)
[pierre@localhost ~]$ if [ "$VAR" = "P" ]
> then
> echo VRAI;
> else
> echo FAUX
> fi
VRAI
[pierre@localhost ~]$
27 mai 2008 à 14:19
En fait après avoir récupéré ce 'P' dans ma variable VAR, j'aimerai faire un test style :
if [ $VAR='P' ]
then
echo "ca marche"
else
echo "ca marche pas"
Et bizarrement ça marche pas, pouvez vous svp me renseigner sur la syntaxe exacte du test ?
merci par avance