#1 Le 27/06/2014, à 14:32
- McRbt
Vérifier si tout les 1er champ, avec awk, sont vides
Bonjour,
J'écris un script en bash me permettant d'analyser et de traiter des fichiers .csv.
Les données de ces derniers fichiers sont séparés par des point-virgule.
Je voudrais vérifier si le premier champ est vide, si ce n'est le cas alors le script s'arrête.
Je pense qu'un one-liner avec awk est faisable, cependant je patauge.
Voici ce que j'ai commencé à faire :
DATA_TYPE=`awk -F';' '{printf $1}' fichier.csv`
if [ -z "$DATA_TYPE" ]
then
exit
fi
En débug mode, j'apercois que la variable DATA_TYPE correspond à tout les premiers champs réunis en un seul point.
Dernière modification par McRbt (Le 27/06/2014, à 14:54)
Hors ligne
#2 Le 27/06/2014, à 16:04
- pingouinux
Re : Vérifier si tout les 1er champ, avec awk, sont vides
Salut,
Ceci devrait convenir
awk -F';' '$1==""{exit 1}' fichier.csv || exit
Correction : J'avais mal lu le sujet
Ajouté :
Autre solution
sed -n '/^;/Q1' fichier.csv || exit
Dernière modification par pingouinux (Le 27/06/2014, à 18:37)
Hors ligne
#3 Le 28/06/2014, à 10:26
- credenhill
Re : Vérifier si tout les 1er champ, avec awk, sont vides
hello
et aussi
grep -q '^;' fichier.csv && exit
Hors ligne
#4 Le 28/06/2014, à 12:06
- pingouinux
Re : Vérifier si tout les 1er champ, avec awk, sont vides
@credenhill : La concision de ta commande me semble difficile à battre…
Hors ligne