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 20/04/2020, à 19:41

zigroful1

AWK création d'une librairie utilisateur

Je travaille sous ubuntu 18.04 LTS et j'étudie le langage AWK pour créer des scripts.
La documentation de AWK indique que l'on peut créer une librairie utilisateur en y déposant des fonctions dans un fichier.
je n'ai rien trouvé sur la manière de constituer ce fichier de fonctions, de le déclarer comme une librairie pour le faire reconnaitre par AWK et la manière d'appeler une de ces fonctions à partir de la ligne de commande, dans AWK !
Quelqu'un a-t-il une piste à me proposer ou peut-il me donner un exemple d'appel de la librairie et des fonctions qui s'y trouvent ?
Un grand Merci d'avance

Hors ligne

#2 Le 20/04/2020, à 20:11

Watael

Re : AWK création d'une librairie utilisateur

salut,

avec Gawk, uniquement :

function date2Epoch(     Y,m,d,H,M,S,z)
{
	return mktime(Y" "m" "d" "H" "M" "S,z)
}
$ gawk '@include "'"$HOME"'/bin/awk_functions"; BEGIN{ print date2Epoch("2020 04 20 20 20 00")}'
1587406800

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 20/04/2020, à 23:49

zigroful1

Re : AWK création d'une librairie utilisateur

GRAND MERCI pour ton aide.
chez moi ça marche également avec awk !

Hors ligne

#4 Le 21/04/2020, à 00:03

Watael

Re : AWK création d'une librairie utilisateur

awk est probablement un lien symbolique vers gawk.
sur eoan ermine :

$ readlink -f $(which awk)
/usr/bin/gawk

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 01/06/2020, à 13:08

zigroful1

Re : AWK création d'une librairie utilisateur

Voila la donnée, mise sous la variable c dans bash et que j'appelle avec echo -e $c
Dans cette donnée j'y ai mis deux lignes consécutives qui commencent par une date.

12/10/2020; "blabla a1 a2 a3 \n b1 b2 b3\n c1"; d1; 5.8;;\n21/05/2020;"e1 e2 e3\n f1 f2\n g1 g2"; h1;; 12.7
echo -e $c | sed 's/\"/ /g' | gawk 'BEGIN{FS=";"}{gsub("\n"," ",$2); print $0}'
12/10/2020;  blabla a1 a2 a3 
 b1 b2 b3
 c1 ; d1; 5.8;;21/05/2020; e1 e2 e3
 f1 f2
 g1 g2 ; h1;; 12.7

Alors que je veux obtenir: 12/10/2020; blabla a1 a2 a3 b1 b2 b3 c1; 5.8;;
                                          21/05/2020; e1 e2 e3 f1 f2 g1 g2; h1;;12.7

Hors ligne

#6 Le 01/06/2020, à 14:06

Watael

Re : AWK création d'une librairie utilisateur

la discussion a été scindée parce que tu abordes un nouveau sujet.
je copie ton dernier message dans la nouvelle discussion


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne