IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Sed, Awk script modification de Fstab


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    autodidacte insaciable, hermite en Liberté :p
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte insaciable, hermite en Liberté :p

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Sed, Awk script modification de Fstab
    Bonjour à Tous

    Voici 3 jours que je bataille sans résultat avec un script bash. qui sera a terme intégré dans mes iso debian
    le but étant de sécuriser mes partitions à l'aide des nodev,noexec,nosuid mais sans les mains

    Voici mon fstab de base:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    /dev/mapper/system-root /               ext4    errors=remount-ro			0       1
    # /boot was on /dev/sda1 during installation
    UUID=7d9da36b-6d55-48b8-97d7-efd0424a27ee /boot        ext4    defaults  		0       2
    /dev/mapper/system-home /home           ext4    defaults        			0       2
    /dev/mapper/system-opt /opt            ext4    defaults  				0       2
    /dev/mapper/system-tmp /tmp            ext4    defaults       				0       2
    /dev/mapper/system-usr /usr            ext4    defaults      				0       2
    /dev/mapper/system-var /var            ext4    defaults					0       2
    /dev/mapper/system-var+log /var/log    ext4    defaults       				0       2
    /dev/mapper/system-var+tmp /var/tmp    ext4    defaults       				0       2
    /dev/mapper/system-swap_1 none         swap    sw              				0       0
    /tmpfs /run/shm 			       tmpfs defaults,nodev,noexec,nosuid	0	0
    /dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     				0       0
    voici mon fstab après lancement du script...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    /dev/mapper/system-root /               ext4    errors=remount-ro,nosuid,nodev,noexec,			0       1
    # /boot was on /dev/sda1 during installation
    UUID=7d9da36b-6d55-48b8-97d7-efd0424a27ee /boot        ext4    defaults  		0       2
    /dev/mapper/system-home /home           ext4    defaults,nodev,nosuid,noexec        			0       2
    /dev/mapper/system-opt /opt            ext4    defaults,nodev,noexec,nosuid,ro  				0       2
    /dev/mapper/system-tmp /tmp            ext4    defaults,nodev,noexec,nosuid       				0       2
    /dev/mapper/system-usr /usr            ext4    defaults,nodev,nosuid,ro      				0       2
    /dev/mapper/system-var /var            ext4    defaults,nodev,nosuid,usrquota,grpquota					0       2
    /dev/mapper/system-var+log /var/log    ext4    defaults,nodev,nosuid,usrquota,grpquota,nodev,noexec,nosuid       				0       2
    /dev/mapper/system-var+tmp /var/tmp    ext4    defaults,nodev,nosuid,usrquota,grpquota,nodev,noexec,nosuid       				0       2
    /dev/mapper/system-swap_1 none         swap    sw              				0       0
    /tmpfs /run/shm 			       tmpfs defaults,nodev,noexec,nosuid	0	0
    /dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     				0       0
    premièrement sed me renvoi :
    "/bin/sed: -e expression n°1, caractère 15: commande `s' inachevée " (se qui me retourne une erreur 127 quand je crée des isos debian avec live-build)
    ensuite comme vous pouvez le constater sur les partitions /var/log et /var/tmp nodev,nosuid s'écrivent deux fois???

    Pour les plus maniac, comment réorganiser en colonnes les 0 2 ?
    Voici le script en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #!/bin/bash
    echo '==================================================='
    echo '	Hardening fstab nodev,nosuid,noexec '
    echo '==================================================='
     
    FSTAB=/home/dark/doc-partage-VM/fstab
    SED=`which sed`
     
        #nosuid on /
        if [ $(grep " \/ " ${FSTAB} | grep -c "nosuid") -eq 0 ]; then
                MNT_OPTS=$(grep " \/ " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/.*${MNT_OPTS}\)/\1,nosuid,nodev,noexec,/" ${FSTAB}
        fi
     
        #nodev,nosuid on /boot
        if [ $(grep " \/boot " ${FSTAB} | grep -c "nodev,nosuid") -eq 0 ]; then
                MNT_OPTS=$(grep " \/boot " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/boot.*${MNT_OPTS}\)/\1,nodev,nosuid,ro/" ${FSTAB}
        fi
     
        #nodev and nosuid on /usr
        if [ $(grep " \/usr " ${FSTAB} | grep -c "nodev") -eq 0 ]; then
                MNT_OPTS=$(grep " \/usr " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/usr .*${MNT_OPTS}\)/\1,nodev,nosuid,ro/" ${FSTAB}
        fi
     
        #nodev and nosuid on /home
        if [ $(grep " \/home " ${FSTAB} | grep -c "nodev") -eq 0 ]; then
                MNT_OPTS=$(grep " \/home " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/home .*${MNT_OPTS}\)/\1,nodev,nosuid,noexec/" ${FSTAB}
        fi
     
        #nodev,noexec,nosuid on /tmp
        if [ $(grep " \/tmp " ${FSTAB} | grep -c "nodev") -eq 0 ]; then
                MNT_OPTS=$(grep " \/tmp " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/tmp.*${MNT_OPTS}\)/\1,nodev,noexec,nosuid/" ${FSTAB}
        fi
     
        #nodev,noexec,nosuid on /var/tmp
        if [ $(grep " \/var\/tmp " ${FSTAB} | grep -c "nodev") -eq 0 ]; then
                MNT_OPTS=$(grep " \/var\/tmp " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/var\/tmp.*${MNT_OPTS}\)/\1,nodev,noexec,nosuid/" ${FSTAB}
        fi
     
         #nodev,noexec,nosuid on /var/log
        if [ $(grep " \/var\/log " ${FSTAB} | grep -c "nodev") -eq 0 ]; then
                MNT_OPTS=$(grep " \/var\/log " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/var\/log.*${MNT_OPTS}\)/\1,nodev,noexec,nosuid/" ${FSTAB}
        fi
     
        #nodev,noexec,nosuid on /opt
        if [ $(grep " \/opt " ${FSTAB} | grep -c "nodev") -eq 0 ]; then
                MNT_OPTS=$(grep " \/opt " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/opt.*${MNT_OPTS}\)/\1,nodev,noexec,nosuid,ro/" ${FSTAB}
        fi
     
        #nodev,nosuid on /var/
        if [ $(grep " \/var " ${FSTAB} | grep -c "nodev") -eq 0 ]; then
                MNT_OPTS=$(grep " \/var " ${FSTAB} | awk '{print $4}')
                ${SED} -i "s/\( \/var.*${MNT_OPTS}\)/\1,nodev,nosuid,usrquota,grpquota/" ${FSTAB}
        fi
    Je vous avoue être un peu pommé dans toutes ces syntaxes où les moindres espaces peuvent-être mal interprété, sans compter que je ne connais rien du tout à sed et awk, me voilà en bon noob la tête dans la gamelle pour une première.. mdrrr


    En vous remerciant d'avançe du temps que vous passerez a me dépanner

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 284
    Points : 12 736
    Points
    12 736
    Par défaut
    Bonjour et Bienvenu,

    Pas terrible de parser un fichier pour une ligne, puis ensuite reparser le fichier pour modifier la dite ligne...
    Et pour ma part, awk est beaucoup plus approprié que sed et grep pour ce genre de tache:
    Exemple avec le script awk suivant (que je te laisse le soin de vérifier les options de montage et voir d'améliorer) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    $ cat f.awk 
    !/^ *#/ && $2=="/" && $4 !~ /nosuid/ {$4=$4",nosuid,nodev,noexec,"}
    !/^ *#/ && $2=="/boot" && $4 !~ /nodev,nosuid/ {$4=$4",nosuid,nodev,ro"}
    !/^ *#/ && $2=="/usr" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,ro"}
    !/^ *#/ && $2=="/home" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,"}
    !/^ *#/ && $2=="/tmp" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,"}
    !/^ *#/ && $2=="/var/tmp" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,"}
    !/^ *#/ && $2=="/var/log" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,"}
    !/^ *#/ && $2=="/opt" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,ro"}
    !/^ *#/ && $2=="/var" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,usrquota,grpquota"}
    !/^ *#/ {for(i=1;i<=NF;i++){
    		X[i]=length($i)
    		C[i]=C[i]>X[i] ? C[i] : X[i]
    		}
    	}
    {TT[NR]=$0}
    END{
    	for(i=1;i<=NR;i++){
    		$0=TT[i]
    		if($0 !~ /^ *#/){
     
    			for(j=1;j<=NF;j++){
    				$j=sprintf("%-"C[j]+2"s",$j)
    			}
    		}
    		print
    	}
    }
    Et en exemple d'utilisation, si je reprend ton fichier fstab avant modification:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ awk -f f.awk fstab
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    /dev/mapper/system-root                     /               ext4          errors=remount-ro,nosuid,nodev,noexec,    0   1  
    # /boot was on /dev/sda1 during installation
    UUID=7d9da36b-6d55-48b8-97d7-efd0424a27ee   /boot           ext4          defaults,nosuid,nodev,ro                  0   2  
    /dev/mapper/system-home                     /home           ext4          defaults,nosuid,nodev,noexec,             0   2  
    /dev/mapper/system-opt                      /opt            ext4          defaults,nosuid,nodev,noexec,ro           0   2  
    /dev/mapper/system-tmp                      /tmp            ext4          defaults,nosuid,nodev,noexec,             0   2  
    /dev/mapper/system-usr                      /usr            ext4          defaults,nosuid,nodev,ro                  0   2  
    /dev/mapper/system-var                      /var            ext4          defaults,nosuid,nodev,usrquota,grpquota   0   2  
    /dev/mapper/system-var+log                  /var/log        ext4          defaults,nosuid,nodev,noexec,             0   2  
    /dev/mapper/system-var+tmp                  /var/tmp        ext4          defaults,nosuid,nodev,noexec,             0   2  
    /dev/mapper/system-swap_1                   none            swap          sw                                        0   0  
    /tmpfs                                      /run/shm        tmpfs         defaults,nodev,noexec,nosuid              0   0  
    /dev/sr0                                    /media/cdrom0   udf,iso9660   user,noauto                               0   0
    Bon courage...
    Cordialement.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    autodidacte insaciable, hermite en Liberté :p
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte insaciable, hermite en Liberté :p

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour Disedorgue,

    Merci de ta réponse si rapide et tellement précise, après 4h hier soir à étudier les syntaxe obscure de sed, je lis ton poste et là j'éclate de rire en lisant ton avis sur awk plutot que sed et grep et le superbe script que tu as pondu, propre et sans bavure en un temps records ^^

    Mais car il y a toujours un mais^^

    la commande awk -f f.awk me retourne comme erreur awk: 2: unexpected character '.'

    si je supprime $ cat f.awk du script il fonctionne mais le résultat ressort dans mon terminal uniquement mais ne s'applique pas au fichier fstab.

    j'ai tourné mainte fois les commandes dans tout les sens et sans résultat.

    Qu'en penses tu?

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    tu aurais pu troquer ta colonne de !/^ *#/ pour une ligne unique en début de script du genre /^[ \t]*#/ {next}

    edit: reste que si il s'agissait de ma machine je pense que je préfèrerai plutôt backup/restore le fichier, éventuellement en lui modifiant dynamiquement une ligne ou deux, comme l'uuid par exemple, mais pas 90% du fichier, j'aurai une impression de "potentiellement trop casse-gueule", c'est le genre de fichier qu'on ne peut pas trop se permettre de vautrer

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 284
    Points : 12 736
    Points
    12 736
    Par défaut
    Citation Envoyé par Hector1 Voir le message
    Bonjour Disedorgue,

    Merci de ta réponse si rapide et tellement précise, après 4h hier soir à étudier les syntaxe obscure de sed, je lis ton poste et là j'éclate de rire en lisant ton avis sur awk plutot que sed et grep et le superbe script que tu as pondu, propre et sans bavure en un temps records ^^

    Mais car il y a toujours un mais^^

    la commande awk -f f.awk me retourne comme erreur awk: 2: unexpected character '.'

    si je supprime $ cat f.awk du script il fonctionne mais le résultat ressort dans mon terminal uniquement mais ne s'applique pas au fichier fstab.

    j'ai tourné mainte fois les commandes dans tout les sens et sans résultat.

    Qu'en penses tu?
    La première ligne ( $ cat f.awk ) ne fait pas partie du script awk, ici, je ne faisais que afficher son contenu via la commande cat.
    Sinon, oui, celui-ci ne fait qu'afficher sur la sortie standard, le résultat car comme le souligne BufferBob, vaut mieux conserver l'original pour pouvoir le restaurer si besoin, donc ce que tu peux éventuellement faire c'est:
    -renommer ton fichier fstab avec un timestamps non répétitif comme ça, si tu relances plusieurs fois, tu n'écraseras pas le précédent.
    -lancer le script awk sur le fichier précédemment renommé en redirigeant la sortie sur le nom de ton fichier fstab avant renommage.

    En exemple, cela donnerait quelque chose qui pourrait ressembler à ceci (pas testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sleep 1
    TIMESTAMP=$(date "+%s")
    mv ${FSTAB} ${FSTAB}.${TIMESTAMP}
    awk -f f.awk ${FSTAB}.${TIMESTAMP} >${FSTAB}
    Ici, j'ai rajouté un sleep 1 pour être sur que l'on ne lance pas 2 fois la commande dans la même seconde car sinon, le TIMESTAMP pourrais avoir 2 fois la même valeur.

    Citation Envoyé par BufferBob Voir le message
    tu aurais pu troquer ta colonne de !/^ *#/ pour une ligne unique en début de script du genre /^[ \t]*#/ {next}
    Oui, mais plutot /^[ \t]*#/ {TT[NR]=$0;next}Ce qui donnerait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    /^[ \t]*#/ {TT[NR]=$0;next}
    $2=="/" && $4 !~ /nosuid/ {$4=$4",nosuid,nodev,noexec,"}
    $2=="/boot" && $4 !~ /nodev,nosuid/ {$4=$4",nosuid,nodev,ro"}
    $2=="/usr" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,ro"}
    $2=="/home" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,"}
    $2=="/tmp" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,"}
    $2=="/var/tmp" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,"}
    $2=="/var/log" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,"}
    $2=="/opt" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,noexec,ro"}
    $2=="/var" && $4 !~ /nodev/ {$4=$4",nosuid,nodev,usrquota,grpquota"}
    {for(i=1;i<=NF;i++){
    		X[i]=length($i)
    		C[i]=C[i]>X[i] ? C[i] : X[i]
    		}
    TT[NR]=$0
    }
    END{
    	for(i=1;i<=NR;i++){
    		$0=TT[i]
    		if($0 !~ /^[ \t]*#/){
     
    			for(j=1;j<=NF;j++){
    				$j=sprintf("%-"C[j]+2"s",$j)
    			}
    		}
    		print
    	}
    }
    Cordialement.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    autodidacte insaciable, hermite en Liberté :p
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte insaciable, hermite en Liberté :p

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour Disedorgue et BufferBob,



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sleep 1
    TIMESTAMP=$(date "+%s")
    mv ${FSTAB} ${FSTAB}.${TIMESTAMP}
    awk -f f.awk ${FSTAB}.${TIMESTAMP} >${FSTAB}
    me renvoi un:
    mv: opérande de fichier cible manquant après «*.1496059791*»
    Saisissez «*mv --help*» pour plus d'informations.
    ./script-fstab: ligne 5: ${FSTAB} : redirection ambiguë

    il doit y avoir une micro erreur de syntaxe en bidoulant je devrais trouver le problème

    sinon un simple "awk -f f.awk fstab >FSTAB " marche nickel

    Plus qu'a essayer celà dans live-build demain ou dans la nuit et je vous tiens au courant.
    Garder une sauvegarde de fstab dans mon contexte n'a à mon sens peu d'utilité puisque intégré de base dans l'installation de mon iso;
    mais pour un usage serveur où je n'aurai qu'un accès shell effectivement TIMESTAMP allier a quelques mv et rm dans script a l'air extrêmement intéressant, afin d'annuler les modifications lors d'un reboot, et éviter de nombreuse déboires ^^ .

    Je vous tiens au courant donc dans les jours qui suivent, et Vraiment , un grand, grand merci à vous deux, pour votre Temps et votre Altruime.

  7. #7
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 284
    Points : 12 736
    Points
    12 736
    Par défaut
    Tu n'as pas dû placer les lignes au bon endroit dans ton script, là il crie car il ne connait pas la variable FSTAB alors que tu l'as définie dans ton script...
    Cordialement.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    autodidacte insaciable, hermite en Liberté :p
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : autodidacte insaciable, hermite en Liberté :p

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ,
    Bonsoir Desidorgue,

    Après quelques Bidouillage du script et compris ce charabia fort pratique qu'est bash voici le résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sleep 1
    TIMESTAMP=$(date "+%s")
    cp fstab fstab.${TIMESTAMP}
    awk -f f.awk fstab.${TIMESTAMP} >/etc/fstab
    malheuresement les Choses les plus Simples étant souvent les plus efficaces, mon partitionnement n'est pas modifiables à la fin de l'installateur debian /etc/mtab ne trouve pas mes partitions
    (logique puisque pas eu de reboot, mes partitions ne sont pas encore démarrer...)

    Conclusion, un simple script bash dans /etc/init.rc pour lancer mon script au premier boot puis un rm de celui-ci aurait suffit .... :ptdr
    Bref l'Aventure continu et je te remercie vraiment du temps que tu m'as accordé Disedorgue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2014, 12h03
  2. Script bash - besoin d'aide avec sed & awk
    Par Obiwan31 dans le forum Unix
    Réponses: 1
    Dernier message: 23/04/2010, 10h11
  3. [SED - AWK] Quelques commandes et scripts en vrac
    Par lordduck dans le forum Contribuez
    Réponses: 7
    Dernier message: 23/02/2010, 01h51
  4. Réponses: 2
    Dernier message: 20/06/2006, 22h58
  5. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 18h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo