24 mai 2011

Remplacer un saut de ligne par un espace avec la commande tr

Comment remplacer un saut de ligne par un espace dans un fichier ou une variable ? De diverses manières me direz-vous :) Pour ma part, j'ai choisi la commande tr, en une ligne cela donne : Pour une variable : echo ${mavariable} | tr "\n" " " Pour un fichier : cat monFichier | tr "\n" " " Ex: voilà mon fichier initial : 15kklhlkhlkggbnjbkjkkk47 Voilà le résultat : 1 5 kklhlkhlk ggbnjbkjkkk 4 7 En savoir plus sur la commande tr : man tr
Posté par fatihaelh à 17:57 - - Commentaires [2] - Permalien [#]
Tags : , ,

16 mai 2011

$* en ksh : récupération de la liste des paramètres positionnels

Cette petite note pour vous expliquer comment récupérer la liste des paramètres positionnels en ksh. Vous avez un script et vous souhaitez lui passer non pas un mais plusieurs paramètres. Cf. l'exemple ci-dessous : monScript.ksh param1 param2 param3 param4 Ensuite dans votre script vous voulez récupérer la liste des paramètres passés au script. Peu importe, le nombre de paramètres, vous aurez la liste stockée dans cette variable : $* Cela paraît simple mais dans le feu de l'action on peut facilement se faire avoir et utiliser $1... [Lire la suite]
Posté par fatihaelh à 17:52 - - Commentaires [0] - Permalien [#]
Tags : , ,
14 mars 2011

Comment utiliser une variable ksh dans sed ?

Je travaille sur une fonction en ksh qui recherche un pattern puis supprime la ligne du fichier contenant ce pattern. Voilà ce que cela donne : Mon fichier contient : hhhhhhiuiujiuj 5768897979 hbjjlklhjg 970979060 aaaaaaaaa lklhllhylljhl Après traitement il doit contenir (suppression de la ligne contenant aaaaaaaaa) : hhhhhhiuiujiuj 5768897979 hbjjlklhjg 970979060 lklhllhylljhl Le problème c'est que aaaaaaaaa est en réalité une variable. Du coup, je tente d'utiliser sed de cette manière : sed "/$maVariable/d" monFichier... [Lire la suite]
Posté par fatihaelh à 14:01 - - Commentaires [0] - Permalien [#]
Tags : ,
07 décembre 2010

Ecrire dans un fichier et dans la sortie standard avec la commande tee

Comment fait-on pour lancer une commande sous Linux en ligne de commande et récupérer le résultat dans la sortie standard et dans un fichier ? Avec la commande tee ! Comment ça fonctionne ? Je ne le savais pas jusqu'à ce que mon collègue me l'explique :) Il faut utiliser pour cela la commande tee de la sorte : command | tee -a Merci à mon collègue Ahmed :) Plus d'infos sur la commande tee
Posté par fatihaelh à 18:25 - - Commentaires [0] - Permalien [#]
Tags : , ,
17 mars 2010

Scripts shell, le debug avec l'option -x

Vous venez de coder un script shell, tout beau, tout propre, bien indenté, mais voilà il ne fonctionne pas. Pourtant, vous le retournez dans tous les sens, vous intégrez des echo partout à chaque condition, chaque boucle if. Simplement ce script est coriace, il ne se laisse pas faire ! Mon collègue Ludovic m'a expliqué hier comment venir à bout des scripts difficiles, et ce avec un seule option à passer avant d'exécuter son script. Laquelle, me direz-vous ? Patience :) C'est l'option -x que vous devrez utiliser et ce avec n'importe... [Lire la suite]
Posté par fatihaelh à 10:53 - - Commentaires [2] - Permalien [#]
Tags : ,
15 février 2010

Comment récupérer en une ligne le % d'espace disque utilisé sous Linux et l'intégrer dans zabbix

J'ai eu quelques soucis ce matin avec des filesystems protégés (Permission denied) sous Linux, ceux-ci ne remontent pas dans l'application zabbix. Comment faire dans ce cas, en une ligne pour récupérer le pourcentage d'espace disque utilisé par un filesystem ? La première étape (en étant root) est d'autoriser zabbix a effectué un df et ce dans cas l'inscrire dans le fichier /etc/sudoers de cette manière : User_Alias MONITORING = zabbixCmnd_Alias SYSTEM = /bin/dfMONITORING ALL=NOPASSWD: SYSTEM Pour pouvoir exécuter le sudo à... [Lire la suite]
Posté par fatihaelh à 12:55 - - Commentaires [0] - Permalien [#]
Tags : , , ,

22 décembre 2009

Suppression d'espaces ou de tabulations avec sed

Pour ceux qui ne connaissent pas la commande sed, c'est un véritable couteau suisse Justement, ajourd'hui, j'ai mis quelques minutes à retrouver comment faire pour supprimer des espaces en début de ligne ! Google étant mon ami, voilà la solution : sed -e 's/^[ \t]*//' /path/to/myFile Je remercie ce site.
Posté par fatihaelh à 18:40 - - Commentaires [0] - Permalien [#]
Tags : , ,
15 mai 2009

Exécuter PHP en ligne de commande sous Linux avec l'option -q

Vous avez un script php sous Linux que vous ne voulez pas exécuter via l'interface web mais vous souhaitez le lancer en ligne de commande. Comment faire ? Une option vous permet d'exécuter ce script en ligne de commande, c'est l'option -q. La méthode est la suivante (vous pouvez même lui passer des arguments) : /path_to_bin_php/ -q fichier.php Exemple : /usr/bin/php -q /users/toto/genereGraphique.php Dans mon cas, j'utilise des scripts php (génération de graphiques) et ensuite je les intègre à du ksh et je les lance... [Lire la suite]
Posté par fatihaelh à 14:56 - - Commentaires [2] - Permalien [#]
Tags : , ,
03 décembre 2008

Erreur classique avec la commande sed : écrasement de fichier !

Il existe une erreur classique à ne pas commettre avec la commande sed :REDIRIGER LA SORTIE DE LA COMMANDE VERS UN FICHIER AYANT LE MÊME NOM Exemple : sed '/server.*/d'  file > file Cette commande recherche les lignes du fichier file contenant le motif "server" et la supprime. Le problème c'est que le fichier d'origine est écrasé par la redirection. En effet, il faut rediriger la sortie vers un fichier ayant un nom différent sous peine de perdre définitivement le fichier d'origine. Ce qui serait vraiment... [Lire la suite]
Posté par fatihaelh à 19:04 - - Commentaires [2] - Permalien [#]
Tags : ,
20 novembre 2008

Tester si un fichier existe et est non vide (en ksh)

En ksh, c'est simple tout est optimisé, concis et clair ! Alors en une ligne et en très peu de commandes, ci-dessous un test à utiliser et à ré-utiliser pour tester si un fichier existe et est non vide :if [[ -e $PATH && -s $PATH  ]]then#placer votre code icifi ps : code récupéré lors de ma formation en ksh (formation IBM AL32FR) Pour info : sur ce site vous trouverez d'autres tests.
Posté par fatihaelh à 16:38 - - Commentaires [0] - Permalien [#]
Tags : ,