Affiche les résultats de 1 à 3 sur 3

Sujet : incrémentation en bash (ou autre) ?

  1. #1
    Léon
    Inscrit
    fvrier 2018
    Distribution
    openSUSE-Leap-15.1
    Environnement
    KDE
    Messages
    18

    incrémentation en bash (ou autre) ?

    Bonjour,

    Je transforme des fichiers .tex en fichiers .html.

    Pour ça, j'ai un script bash qui me supprime les 12 premières lignes et les 6 dernières du fichier .tex puis un deuxième script qui remplace les balises tex par des balises html.

    Tout ça fonctionne très bien fichier par fichier. Mais j'aimerais pouvoir traiter tous les fichiers d'un même répertoire en une seule fois.

    Mes fichiers tex se nomment 01.tex, 02.tex, 03.tex ... les fichiers html se nomment pareillement, seule l'extension change.

    Mon script :

    Code:
    #!/bin/bash
    
    # conversion d'un fichier tex en fichier html
    
    cat 01.tex | sed "1,12d" | cat > file.bak ;
    tac file.bak | sed "1,6d" | tac > 01.html ;
    rm file.bak ;
    En gros, j'aimerais un truc qui s'applique à tous les fichiers tex d'un répertoire en conservant le nom du fichier et en changeant seulement l'extension.

    Si quelqu'un peut m'aiguiller dans les arcanes des boucles for ou while ou autres...

    Merci. :)

  2. #2
    Administrateur Administrateur Avatar de sogal
    Inscrit
    octobre 2016
    Lieu
    Isère
    Distribution
    openSUSE Leap 15.1 (64 bits)
    Environnement
    Gnome
    Messages
    658
    Code:
    # Pour chacun des fichiers .tex présents dans le répertoire où l'on se trouve
    for f in *.tex
    # Appliquer ce qui suit
    do
    # On calcule le nombre total de ligne du fichier
    NB_LINES=$(wc -l $f | cut -d" " -f1)
    # On affiche toutes les lignes du fichier à l'exception des 6 dernières puis on supprime les 12 premières de ce résultat
    # qu'on balance dans un fichier portant le nom du fichier .tex en cours de traitement, mais sans son extension et on y ajouter
    # l'extension .html
    cat $f |  head -n $(( $NB_LINES - 6 )) | sed '1,12d' > ${f%%.*}.html
    # On a fini
    done
    Machine perso : Thinkpad x230 : Leap 15.1 | Workstation hyperviseur: Leap 15.1

  3. #3
    Léon
    Inscrit
    fvrier 2018
    Distribution
    openSUSE-Leap-15.1
    Environnement
    KDE
    Messages
    18
    Grand merci Maître sogal, ça fait exactement ce dont j'ai besoin. :)

    Plus qu'à étudier ça de près pour pouvoir le modifier si nécessaire.
    Dernière édition par batewa; 10/06/2019 à 18h19

Tags pour ce sujet

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas modifier vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé