Formule shell préfixe
Résolu
Benoit A.
Messages postés
455
Date d'inscription
Statut
Membre
Dernière intervention
-
Benoit A. Messages postés 455 Date d'inscription Statut Membre Dernière intervention -
Benoit A. Messages postés 455 Date d'inscription Statut Membre Dernière intervention -
Je relance un nouveau sujet qui est similaire à ma première question mais j'apporte un peu plus de précision.
Je reçois un fichier en format csv (emploi_fixe) sur mon serveur contenant x colonnes. Sachant que la première colonne (ID) contient un chiffre compris entre 1 et 192000 et qu'il n'y a aucune en-tête sur mon fichier.
Je cherche à créer une formule en shell (.sh) qui puisse me permettre d'ajouter la lettre "S" avant mon ID après la ligne 192000. Autrement dit je voudrais quand je reçois le fichier csv avec la ligne :
"192001";"01/01/1900";" ";"01/02/1900";"404250";"00";"0";"FESD";"AMF";" ";"65";"99";"P999";" ";"1";"SV";"07";" ";"45.0";"184465";"N";"999";
j'ai un autre fichier qui se créé (qui porterais le même nom) avec cette nuance :
"S192001";"01/01/1900";" ";"01/02/1900";"404250";"00";"0";"FESD";"AMF";" ";"65";"99";"P999";" ";"1";"SV";"07";" ";"45.0";"184465";"N";"999";
Ceci ne marche pas :
Auriez-vous une idée ??
Merci d'avance pour votre aide
Je reçois un fichier en format csv (emploi_fixe) sur mon serveur contenant x colonnes. Sachant que la première colonne (ID) contient un chiffre compris entre 1 et 192000 et qu'il n'y a aucune en-tête sur mon fichier.
Je cherche à créer une formule en shell (.sh) qui puisse me permettre d'ajouter la lettre "S" avant mon ID après la ligne 192000. Autrement dit je voudrais quand je reçois le fichier csv avec la ligne :
"192001";"01/01/1900";" ";"01/02/1900";"404250";"00";"0";"FESD";"AMF";" ";"65";"99";"P999";" ";"1";"SV";"07";" ";"45.0";"184465";"N";"999";
j'ai un autre fichier qui se créé (qui porterais le même nom) avec cette nuance :
"S192001";"01/01/1900";" ";"01/02/1900";"404250";"00";"0";"FESD";"AMF";" ";"65";"99";"P999";" ";"1";"SV";"07";" ";"45.0";"184465";"N";"999";
Ceci ne marche pas :
while IFS=';' read -r -k1 ID
do emploi_fixe ${ID//\"/} -gt 192000 && s=S || s=""
echo "\"$s$ID\";$ID"
done < emploi_fixe.prn
Auriez-vous une idée ??
Merci d'avance pour votre aide
A voir également:
- Formule shell préfixe
- Classic shell - Télécharger - Personnalisation
- Formule si et - Guide
- Prefixe france - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
2 réponses
Salut,
Il suffit d'adapter la syntaxe de dubcek donnée dans ton précédent post :
Il suffit d'adapter la syntaxe de dubcek donnée dans ton précédent post :
awk 'BEGIN{FS=OFS="\""} $2 <= 192000 { print } $2 > 192000 { $2="S"$2 ; print }' fichier > fichier_final
ce sujet est un doublon de celui-ci, où j'ai dit que
-K1n'est pas un nom de variable valide, et ce que je pense du «ça marche pas».
Est-ce que je peux faire quelque chose comme ça ? :
Et idéalement je peux remplacer 192000 par une variable ?
Oui. Mais il faut déclarer ta variable dans awk :
Ou si ta variable est déjà déclarée dans un script.