Script shell

Bonjour,
Est que quelqu'un connaitrait une fonction de lecture et une fonction d'écriture qui respecte les tabulations ds un fichier

merci d'avance !
( je scripte en sh )

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. #!/bin/sh

    Salut à tous
    J'ai un fire-wall sous iptables (fonctionne). Je veux ajouter dans mon script : du lundi au vendredi je fais ça et le samedi, dimanche et jour féries je fais ça.

    Juste la date et le format (le reste est déja en exploitation
    Merci à tous
    1. Modérateur
      Ca répond pas beaucoup à ma question ça !
      ;-(

      Dohm qui vous bouleg tous
      1. Il faudrait préciser ta demande.
        Avec awk tu peux lire un fichier en tenant compte des tabulations, par exemple :
        awk -F\t '{...}' fichier
        voir "man awk" ou "man gawk"

        L'expérience est une lanterne attachée dans notre dos,
        qui n'éclaire que le chemin parcouru. Confucius
    2. Je t'avoue que me tapper le "man" pour un petit script me saoule un peu, en fait, je cherche juste à indiquer la dernière date de modification en tête d'un fichier :

      #!/bin/sh
       
      plouf=0
      
      date > temp200032
      read line < temp200032
      temps=$line
      
      rm -f temp200032
       
      while read line
      do
          if test $plouf = 1 
          then echo $line >> temp200032 
          else  plouf=1
          fi
      done < Makefile
      
      echo "# date de dernière compilation : " $temps > Makefile
      while read line
      do
       echo $line >> Makefile
      done < temp200032
      rm -f temp200032
      
      


      en gros je supprime la première ligne, je rajoute la nouvelle et je recopie le reste de mon fichier.
      Mais en l'état, cela supprime les tabulations.
      1. Modérateur
        #!/bin/sh
        MYFILE="bidon"
        TMP=/tmp/$$
        echo $TMP
        [ -f $MYFILE ] || exit 1;
        echo "#$(date)" > $TMP
        tail -n +2 $MYFILE >> $TMP
        mv $TMP $MYFILE

        Semble fontionner non?
        Johan
        The software said "Requires Windows98, Win2000, or better,
        So I installed Unix.
        1. Ca aussi ça marche :

          #!/bin/sh
          date=`date`
          (
          echo "/# date"
          echo "ddi# date de dernière modification : $date"
          echo "^[ZZ"
          ) | vi Makefile >/dev/null 2>&1

          J'ai le record du plus court ;-)
          L'echap ( ^[ ) s'obtient en tapant Ctrl+V et Echap

          L'expérience est une lanterne attachée dans notre dos,
          qui n'éclaire que le chemin parcouru. Confucius
          1. Modérateur
            Hi,
            Oui, j'ai aussi essayé mais vim n'aime pas beaucoup
            la redirection de l'entrée standard :(
            Peut-re que le vi d'origine...
            De toute manière il reste (s)ed...

            Johan
            The software said "Requires Windows98, Win2000, or better,
            So I installed Unix.
            1. Bonjour,
              Sur Redhat ou Suse, cela ne me pose aucun problème.

              L'expérience est une lanterne attachée dans notre dos,
              qui n'éclaire que le chemin parcouru. Confucius