Réaliser un script Shell similaire à la commande HEAD et la commande TAIL

Signaler
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
10 décembre 2009
-
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
-
salut,
je veux un peu d'aide en écriture d'un script Shell similaire à la commande HEAD et la commande TAIL tout en personnalisant les messages d’erreurs et les options prédéfinies par le système Unix pour ces commandes, et de concevoir un deuxième script Shell qui permet d’ajouter un utilisateur groupe.

9 réponses

Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Ta demande est quelque peu incompréhensible.
Peux-tu expliquer cela un peu mieux ?
Veux-tu réaliser cela en script shell ? Veux-tu recoder en C ou C++ les outils head et tail ?
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
10 décembre 2009

salut
non je veux écrire un script shell qui utilise la commande head and tail,
Mercii
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Ben heu ouais, si tu veux.

vu qu'il n'y a pas de précison, le code est :p
#!/bin/sh
head
tail
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
10 décembre 2009

voilà j'ai essayé d'écrire un petit script shell de la commande tail, j'ai trouvé quelques difficultés au niveau de l'execution,lorsqu'il donne la main pour entrer les derniers nombres, il sort pas de la boucle

var2=`wc -l $2`

if [ -f $1 ] && [ -s $1 ]

then



nbr=`wc -l $1`

nbr=$((${nbr% *}))

if [ $var2 -gt $nbr ]

then

echo "le nombre que vous avez entrerdepasse le nombre de ligne du fichier veuillez entrer un nombre inferieur ou egale a $nbr"

else

tail -$var2 $1
fi
fi
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
J'ai un peu du mal à comprendre ce que tu cherches à faire. Peux-tu décrire précisement ce que tu cherches à faire ?

Peut être cherche tu à faire ceci ?
#!/bin/sh

if [ -f $2 -a -s $2 ]; then
    var2=`wc -l $2`
    var2=$((${var2% *}))
else
    echo "$2: fichier inexistant"
fi

if [ -f $1 -a -s $1 ]; then
    nbr=`wc -l $1`
    nbr=$((${nbr% *}))
    if [ $var2 -gt $nbr ]; then
echo "le nombre que vous avez entrer depasse le nombre de ligne "
"du fichier veuillez entrer un nombre inferieur ou egale a $nbr"
    else
tail -n $var2 $1
    fi
else
    echo "$1: fichier inexistant"
fi
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
10 décembre 2009

ca marche pas lors de l'execution, le même problème que j'ai trouvé, il faut qui donne juste les derniers nombres que j'ai entré et qu'il sort de la boucle
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Peux-tu expliquer clairement ce que tu cherches à faire ? (Avec des exemples).
Je suis désolé, mais c'est toujours incompréhensible !
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
10 décembre 2009

je cherche de faire un petit script avec la commande "tail", je veux lire les derniers lignes d'un fichier,voilà ce qu'il me donne apres execution
sh -x uu
+ '[' -f ']'
+ '[' -s ']'
++ wc -l
1
2
3
+ nbr=3
+ nbr=3
++ wc -l
1
2
+ var2=2
+ '[' 2 -gt 3 ']'
+ tail -2
1
2
3
4
au niveau de tail, il affiche pas juste les 2 derniers lignes
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
Essaie de faire un petit effort sur l'orthographe et la syntaxe, car tu es très difficile à lire et à comprendre.

Je ne comprends toujours pas ce que tu cherches à réaliser, mais une ligne me parait étrange:

tail -2

Ca ne devrait pas être ?:

tail -n 2