C, compiler un projet avec autoconf, automake & consors

2012-11-07

Si le projet met à disposition un fichier autogen.sh, utilisez-le. Sinon, exécutez les commandes suivantes pour reconfigurer et recompiler le projet : autoreconf –force –install - lance aclocal, autoconf, autoheader et automake dans le bon ordre pour créer config.h.in, Makefile.in, configure et un certain nombre de fichiers auxiliaires ./configure - crée le fichier Makefile à partir du fichier Makefile.in et config.h à partir du fichier config.h.in - make

Continuer la lecture 


bash et les tableaux...

2012-11-05

Voici comment faire des tableaux et les utiliser en bash. $ cat script.bash #!/bin/bash tableau=("un élément" "et puis un deuxième" "et pourquoi pas un dernier" "pour finir") for elem in "${tableau[@]}"; do echo $elem done echo et si je ne veux que le 3e... echo "${tableau[@]:2:1}" $ ./script.bash un élément et puis un deuxième et pourquoi pas un dernier pour finir et si je ne veux que le 2e... et pourquoi pas un dernier Je suis tombé dessus en regardant les PKGBUILD de dwm comme (celui-ci)

Continuer la lecture 


mac, disque ntfs en écriture

2012-10-29

Grrr, apple bloque tout. Le disque Western Digital que je viens d’acheter se monte directement mais n’est visible du finder qu’en lecture seulement ! C’est rageant. Il y a des solutions tierces telles que paragon-software.com et tuxera.com mais c’est payant :( J’ai quand même fait quelques explorations et il s’avère qu’on peut bien monter le disque en lecture/écriture sans passer par la caisse : $ sudo umount /Volumes/WD1TO $ mkdir /Volumes/WD1TO $ sudo mount -t ntfs -o nodev,nosuid,noowners,rw /dev/disk2s1 /Volumes/WD1TO $ echo hello the world > /Volumes/WD1TO/example $ cat /Volumes/WD1TO/example hello the world J’ai lancé une copie de 200Go de données, je verai bien si tout passe.

Continuer la lecture 


bash, récupérer la n-ième ligne ou les lignes x à y d'un fichier

2012-10-17 | #awk #sed

On peut utiliser awk avec NR (numéro de ligne tout fichier confondus) ou FNR (numéro de ligne du fichier) : ### afficher la 3e ligne $ awk 'NR==3 { print; exit; }' /etc/passwd bin:x:2:2:bin:/bin:/bin/sh ### afficher les lignes 3 à 6 $ awk '3<=NR && NR<=6 { print; }' /etc/passwd bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh Ou bien avec sed : $ cat /etc/passwd | sed '3!d' bin:x:2:2:bin:/bin:/usr/sbin/nologin $ cat /etc/passwd | sed '3,6!

Continuer la lecture 


bash, lire ligne par ligne

2012-10-16 | #bash #line #read

Pour un fichier : $ while read line ; do echo $line; done < /etc/shells # /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen Et encore mieux, sur la sortie d’une commande :) $ while read line ; do echo $line; done < <(head -n 3 /etc/shells) # /etc/shells: valid login shells /bin/csh /bin/sh

Continuer la lecture 


awk, un exemple pour bien débuter et comprendre...

2012-10-15 | #awk #base #for

$ cat file.txt Firstname;Lastname John;Doe Jane;Doe Paul;Smith #end of file with a ; character $ for b in b b1 b2; do awk -F ';' -v base=$b -v fmt='use %s; insert into Users values ("%s", "%s");\n' 'NR>=2 && /;/ && !/^#/ {printf fmt, base, $1, $2}' file.txt done use b; insert into Users values ("John", "Doe"); use b; insert into Users values ("Jane", "Doe"); use b; insert into Users values ("Paul", "Smith"); use b1; insert into Users values ("John", "Doe"); use b1; insert into Users values ("Jane", "Doe"); use b1; insert into Users values ("Paul", "Smith"); use b2; insert into Users values ("John", "Doe"); use b2; insert into Users values ("Jane", "Doe"); use b2; insert into Users values ("Paul", "Smith"); awk n’est pas si compliqué que ça lorsque l’on comprend la philosophie…

Continuer la lecture 