Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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… smile

Hors ligne