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 : ,
21 décembre 2009

Debug de scripts sous Linux : connaître la date de dernier accès à un fichier

Vous êtes en pleine programmation, ça plante, vous ne savez plus par où commencer ! Si ce scénario vous rappelle des souvenirs, il y a une commande très simple à utiliser pour savoir si votre script accède à tous les fichiers nécessaires à son exécution. Par exemple, j'ai un script ksh qui lance une requête SQL dans Oracle et qui a besoin de plusieurs fichiers : environnement oraenv, requête SQL, fichier résultat (.lst), ... Vous pouvez utiliser une commande que vous connaissez sûrement, à savoir : ls, vous lui passez en paramètre... [Lire la suite]
Posté par fatihaelh à 18:46 - - Commentaires [0] - 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 : ,
18 novembre 2008

Date de la veille en ksh

Vous devez récupérer les fichiers de logs de la veille (ayant pour extension une date) et vous ne savez pas comment faire. Si on soustrait un jour et que nous sommes le premier jour du mois par exemple ?? Ou encore, si nous sommes le 1er jour de l'année, nous passons dans ce cas à l'année précédente. Sachez que j'ai trouvé un script fonctionnel sur ce site : commentcamarche.net Merci Slamagirand! J'ai juste le format de la date :#!/bin/ksh## fonction qui recupere la date de la veille :# date -d '1 days ago'#YESTERDAY=$((`date... [Lire la suite]
Posté par fatihaelh à 16:37 - - Commentaires [2] - Permalien [#]
27 octobre 2008

Date en ksh

20081027183742 Comment obtenir ce type de date en ksh ? 20081027183742 soit année en quatre chiffres + mois en deux chiffres + jour en deux chiffres + heure au format 24h et non 12h + minutes + secondes Vous utilisez la fonction date à laquelle vous passez les paramètres adéquates à savoir : # initialisation d'une variable VarDate, attention, ce sont des anti-quotes (Alt Gr+7 sur votre clavier) VarDate=`date +%Y%m%d%H%M%S` # affichage de la date en question, attention une fois stockée dans la variable, cette date ne peut... [Lire la suite]
Posté par fatihaelh à 18:50 - - Commentaires [0] - Permalien [#]
Tags : , ,
23 octobre 2008

cut and paste in ksh for weekly reports instead of daily reports

Si comme moi, on vous demande au dernier moment un fichier reporting hebdomadaire alors qu'au départ c'était censé être un fichier reporting quotidien, je vous recommande ces quelques lignes ci-dessous. Le but est de concaténer ligne à ligne les différents fichiers que vous avez déjà généré au préalable. 1ère étape : couper les lignes correspondant aux colonnes souhaitées et les coller dans un fichier temporaire. Dans mon exemple, je n'ai qu'une seule colonne, d'où l'utilisation de -f2 (en vert) dans la ligne de... [Lire la suite]
Posté par fatihaelh à 12:06 - - Commentaires [0] - Permalien [#]
Tags : ,