awk, extraire des paragraphes
2014-02-01 | #awk #bash #commande
Avec awk, il est possible d’extraire des paragraphes spécifiques par leur ordre d’apparence. Il faut positionner le séparateur d’enregistrements RS et donner les numéros de paragraphe que l’on souhaite extraire via un if comme dans l’exemple ci-dessous. $ cat a NODE-ID> command1 Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
html/java, input file sympa avec bootstrap
2014-01-28 | #bootstrap #html
Dans le cadre d’un projet, j’ai redesigné un formulaire qui permet d’importer un fichier csv (utilise bootstrap). Le rendu est le suivant : <form method="post" action="/somewhere" enctype="multipart/form-data" class="form-horizontal"> <div class="control-group"> <label class="control-label" for="fichier_csv">fichier.csv</label> <input type="file" id="fichier_csv" name="fichier_csv" style="display:none" /> <div class="controls"> <div class="input-append"> <input id="fichier_path" class="input-large" type="text"> <a class="btn" onclick="$('input[id=fichier_csv]').click();"> <i class="icon-folder-open"></i> <span>Sélectionner...</span> </a> </div> </div> <script type="text/javascript"> $('input[id=fichier_csv]').change(function() { $('#fichier_path').val($(this).val()); }); </script> </div> </form> Le code java est le suivant (attention, lorsque le type du formulaire est enctype=“multipart/form-data”, les paramètres ne se récupèrent plus avec HttpServletRequest.
archlinux, problèmes de clé sur mise à jour pacman
2014-01-23 | #archlinux #pacman
Parfois, lors d’une mise à jour ou tentative d’installation d’un paquet, une erreur de clé corrompue survient. Il suffit simplement de mettre à jour les clés de son trousseau comme dans l’exemple ci-dessous et de relancer la mise à jour. Ensuite, ça roule ma poule :) $ pacman -Syu ... error: i3-wm: signature from "Thorsten Töpper <atsutane@freethoughts.de>" is unknown trust error: failed to commit transaction (invalid or corrupted package (PGP signature)) .
socat, sert de proxy et passe le plat...
2013-12-26 | #commande #socat
Sur un de mes projets, un flux a été interrompu… en attendant sa réouverture j’utilise un proxy qui sert de passe plat depuis une machine où le flux en question est ouvert… # le serveur écoute sur le port 1231 et passe le plat à somewhere.example.com:80 socat TCP-LISTEN:1231,reuseaddr,fork TCP:somewhere.example.com:80
bash, renverser un flux ligne à ligne
2013-12-07 | #bash #commande #seq
Voici une commande que je ne connaissais pas avant le petit déjeuner… $ for i in $(seq 1 10); do echo $i; done 1 2 3 4 5 6 7 8 9 10 $ for i in $(seq 1 10); do echo $i; done | tac 10 9 8 7 6 5 4 3 2 1 Fallait la découvrir celle-là ;) tac, la soeur de cat à l’envers…
bash, la fonction qui tue...
2013-12-07
Voici une fonction qui tue… et simplifie la vie en ligne de commandes ! function ..() { ## .. <nombre> remonte de <nombre> repertoires ## .. /<chaine> remonte jusqu'a ce qu'un repertoire contient <chaine> dans son nom local level=$1 if [[ ! "$level" =~ / ]]; then while [ $level -gt 0 ]; do cd .. || break level=$(($level-1)) done else level=${level:1} local curdir=$(pwd) IFS='/' read -ra ADDR <<< "$curdir" for (( i = ${#ADDR[@]}-1; i>0; i-- )); do if [[ "${ADDR[$i]}" =~ "$level" ]]; then break fi cd .
bash, éviter l'interprétation en octal en utilisant printf
2013-12-07
J’ai eu un petit soucis dans un script de renommage qui tentait d’interprêter les valeurs commençant par 08 et 09 en octal lors d’un printf. La solution consiste à spécifier que la valeur est en base 10 comme dans l’exemple ci-dessous : s="09" $ printf "%.02d" $s bash: printf: 09: Nombre octal non valable 00 $ printf "%.02d" $(( 10#$s)) 09
mysql, supprimer une base/table même lorsque des clés étrangères sont positionnées
2013-12-06
Pour ignorer la vérification de la présence de clés étrangères lors de la suppression d’une table ou base, on peut utiliser “SET foreign_key_checks = 0” avec mysql comme dans l’exemple ci-dessous : echo "SET foreign_key_checks = 0; drop database if exists $dbname;" | $ADMIN_SQL_CMD
bash, expansion de paramètres et indirection
2013-11-15
Aujourd’hui, je viens de découvrir l’indirection de paramètres en bash. La syntaxe est la suivante : ${!PARAMETER} L’expansion ne donne pas la valeur du paramètre lui même mais la valeur du paramètre dont le nom est contenu dans PARAMETER. $ TEMP="hello world" $ TEXT=TEMP $ echo ${!TEXT} hello world Cela permet de faire de jolies choses comme ceci en s’abstrayant d’eval… XXX_user=rootX XXX_password=rootX123 XXX_host=sqlserver01.example.com YYY_user=rootY YYY_password=rootY123 YYY_host=sqlserver02.example.com ZZZ_user=rootZ ZZZ_password=rootZ123 ZZZ_host=sqlserver03.example.com connect_to() { local database="$1" user_key="${database}_user" password_key="${database}_password" host_key="${database}_host" mysql -h "${!