Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4895 connectés 

 


Dernière réponse
Sujet : Help, controle UNIX
Toxin Vi euh.... c'est mieux c'est sûr :D
 
Comme je n'utilise jamais awk tout seul sur la ligne de commande, je connaissais pas -F

 


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Toxin Vi euh.... c'est mieux c'est sûr :D
 
Comme je n'utilise jamais awk tout seul sur la ligne de commande, je connaissais pas -F

 

jupiler cela dit, ya moyen de faire plus simple au niveau du code,
 
genre avec une seule ligne:
 
awk -F: '{print $1 "ss" $7}' /etc/passwd | sort -u
Toxin cat /etc/hosts | cut -f1,7 -d":" | sort
Mais il y a un ":" qui reste. Tu peux rajouter
| sed s/[:]/ /g
Pour le virer :D

 

Toxin Mais je crois que c'est cut qu'il faut utiliser :D

 

jupiler pas mieux
 
pour éviter les doublons rajouter -u après le sort
Toxin -- Voilà voilà, ça arrive :D --
 
#!/bin/ksh
 
cat /etc/passwd | awk '
BEGIN
{
FS=":"
}
 
{
ligne[$0]=sprintf("%s %s",$1, $7)
}
 
END
{
for (i in ligne)
ss printf("%s
", ligne[i])
} ' | sort

 

CeCe et tu sais y repondre?
j'ai le debut, mais j'ai du mal pour la liste...
 
 

jupiler a écrit a écrit :

putain, c'est un control sur l'utilisation du man

 




 

jupiler putain, c'est un control sur l'utilisation du man
CeCe derniere question, et apres, vous avez droit a une sucette!!! :rolleyes:
 
copier le fichier/etc/passwd chez vous
afficher dans l'ordre alphabetique tous les noms utilisateurs avec leurs shells, pas d'autres informations superflues

 

Toxin Mais il est 16h passé et j'ai été absent pendant plus d'une demi-heure pour papoter avec un directeur de projet.
 
Ca n'a pas dû aider CeCe.
 

 


--Message édité par Toxin--

jupiler ouaips, question suivantess:hap:
Toxin Voilà !!!!! A deux on y arrive :D

 

jupiler

Toxin a écrit a écrit :

Vi. En awk je sais faire mais pas sur une seule ligne.
 
 

 





 
dans ce cas-la ta ligne est bien mais tu rajoutes -u
 
who | awk '{ print $1 }' | sort -u

Toxin Vi. En awk je sais faire mais pas sur une seule ligne.

 

jupiler

Toxin a écrit a écrit :

Vi mais on ne voit QUE les noms des utilisateurs UNIX, pas le reste. On n'a pas demandé la liste des tty dans l'énoncé.
 
Par contre comment on fait un group des lignes ????
 
 

 





 
tu veux dire, pour éliminer les doublons??

Toxin

CeCe a écrit a écrit :

merci merci
 
 
autre question:  
supposons que dans  votre repertoire courant il y a  
_des fichiers scripts et donnees en texte  
_ des fichiers binaires  _ des sous repertoires  
creez un script qui affiche le contenu de tous les fichiers avec une ligne entête indiquand le nom du fichier. Pour les fichiers non texte ne pas afficher leurs contenus mais signaler par une ligne  
   fichier (indiquer le nom): repertoire ou non texte suivant le cas  
oups!!!  dur dur

 





 
Relis tout le topic, CeCe

 

Toxin Vi mais on ne voit QUE les noms des utilisateurs UNIX, pas le reste. On n'a pas demandé la liste des tty dans l'énoncé.
 
Par contre comment on fait un group des lignes ????

 

CeCe merci merci
 
 
autre question:ss
 
supposons que dansssvotre repertoire courant il y ass
_des fichiers scripts et donnees en textess
_ des fichiers binairesss
_ des sous repertoiresss
 
creez un script qui affiche le contenu de tous les fichiers avec une ligne entête indiquand le nom du fichier. Pour les fichiers non texte ne pas afficher leurs contenus mais signaler par une ligness
ss fichier (indiquer le nom): repertoire ou non texte suivant le casss
 
oups!!!ssdur dur

 

jupiler testes "who | sort" tu verras bien
 
 
ta méthode ne fait que restreindre l'affichage au nom du connecté, mais le awk est inutile puisque le sort utilise le premier champ de la ligne donc le nom

 

--Message édité par jupiler--

Toxin Trié comme ça ???
 
who | awk '{ print $1 }' | sort

 

jupiler

Fred999 a écrit a écrit :

J'ai regardé les options de la commande who, et pareil, je vois pas comment trier non plus.
 
Dis-moi, par hasard il ne manque pas un cat temp.txt ou more temp.txt???

 





 
j'ai changé mon message, suffit de faire who | sort
 
sinon sort sur le fichier ca marche aussi mais c'est plus nécessaire ici

Fred999 J'ai regardé les options de la commande who, et pareil, je vois pas comment trier non plus.
 
Dis-moi, par hasard il ne manque pas un cat temp.txt ou more temp.txt???
jupiler choix.ksh:
 
 
#!/bin/ksh
 
NBPARAM=$#
 
if [ "$NBPARAM" != 1 ]
then
 echo "lancer choix avec arguments 1,2 ou 3"
else
 case "$1" in
    "1" )
     ls -l $HOME
      ;;
    "2" )
     who | sort
     ;;
    "3" )
     env;;
     
   esac
fi
 
 
 
monchoix.ksh:
 
 
#!/bin/ksh
 
echo "Menu du `date`"
echo "1: liste des fichiers de votre repertoire de depart (le home) avec les details "  echo "2: liste des utilisateurs connectes a la machine tries suivant leurs noms  "
echo "3: liste des variables d'environnement"

 

--Message édité par jupiler--

Toxin CeCe peux tu me donner le nom de tes professeurs UNIX. Par mail si tu veux pour pas les divulguer ici. Ca sent le vécu c'est pour ça.

 

Toxin Il y a un pb de syntaxe avec les opérateurs de comparaison et je me souviens plus comment on fait.
 
Attention ' est le back-quote
 
#!/bin/ksh
 
liste='ls'
 
for i in $liste
do
   res='file $i'
 
   echo $res | grep text | wc -l | read btext
   echo $res | grep bit | wc -l | read bbin
   echo $res | grep directory | wc -l | read bdir
   echo $res | grep script | wc -l | read bscript
 
   if [ $btext -eq 1 -o $bscript -eq 1 ]
   then echo "Contenu de $i"
        cat $i
        echo
   else if [ $bbin -eq 1 ]
        then echo "$i : binaire"
        else if [ $bdir -eq 1 ]
             then echo "$i : repertoire"
             else echo "autre"
             fi
        fi
   fi
done
 
Une Connerie corrigé
Deux Conneries corrigées. Ca a l'air de marcher maintenant
 
 
 
 
 

 


--Message édité par Toxin--

Toxin Ah Vi ça m'apprendra à pas tester.

 

jupiler allez je m'y mets
CeCe merci les gars! ;)
 
une autre question:
 
 
creer la commande "monchoix" qui affiche les lignes suivantes:ss
Menu du (indiquer la date)ss
1: liste des fichiers de votre repertoire de depart (le home) avec les detailsss
2: liste des utilisateurs connectes a la machine tries suivant leurs nomsss
3: liste des variables d'environnementss
 
de sorte que qd on lance "choix 1 " "choix 2" ou "choix3" on a les listes indiquesss
 
prevoir le cas ou on lance "choix" sans arguments, afficher le message "lancer choix avec arguments 1,2 ou 3"

 

Fred999 Voilà ce que j'ai eu en testant les commandes :
 
ma_machine# {nom_user} /tmp > (ls -w ||whoami) && date
ls: illegal option -- w
usage: ls [-1ACFLNRabcdefgilmnopqrstux] [File...]
nom_user
Tue Jan 23 14:54:02 NFT 2001
ma_machine# {nom_user} /tmp > (ls -w && whoami) ||datess
ls: illegal option -- w
usage: ls [-1ACFLNRabcdefgilmnopqrstux] [File...]
Tue Jan 23 14:54:24 NFT 200
 
Histoire d'illustrer les propos de Verdoux.
 
Et qu'on arrête de dire que je fais de la mauvaise volonté!!!
verdoux Pour la première question, comme le dit Toxin, y a pas d'option -w dans le ls POSIX (mais elle existe sous GNU-bash).
 
Bon restons POSIX.
(ls -w || whoami) && date va donc être évaluée et retourner sur la sortie standard le nom de l'utilisateur et la date.
 
Par contre (ls -w && whoami) || date ne va retourner que la date parce que les opérateur doublés && et || n'évaluent le second membre que si le premier ne permet pas d'avoir le résultat.
 
Ainsi exp1 && exp2 n'évaluera pas exp2 si exp1 est faux
et exp1 || exp2 n'évaluera pas exp2 si exp1 est vrai.

 


--Message édité par Verdoux--

Toxin Da file ist good.
 
Mais j'ai des problèmes avec la comparaison.

 

PinG

Toxin a écrit a écrit :

J'ai trouvé, je rédige.
 
 

 




arf!
:D
file est ton ami ;)

 

CeCe merci Toxin, tu merites un gros gros bisoux!

 

Toxin J'ai trouvé, je rédige.

 

CeCe oui c'est ca merci...
 
une autre question
 
supposons que ds votre repertoir courant il y ass
_ des fichiers scripts et donnees en texte
_ des fichiers binaires
_ des sous repertoires
creer un script qui affiche le contenu de tous les fichiers avec une ligne entête indiquand le nom du fichier
pour les fichiers non texte ne pas afficher leurs contenus mais signaler par une ligne:
fichier (indiquer le nom): repertoire ou non-texte suivant le cas

 

Fred999 Flagrant délit de double topic.
 
En plus sur BlaBla t'as pas dit que c'était pour un contrôle...
Toxin pas d'option -w pour le ls chez SUN.
 
Pour la signification ça veut dire que
ls -w ça ne marche pas => renvoie un message d'erreur (2) => faux
whoami marche => renvoie la valeur 0 => vrai
date marche => renvoie 0.
 
donc dans
1) (faux ou vrai) et vrai => vrai
2) (faux et vrai) ou vrai => vrai
 
Dans tous les cas la valeur booléenne de ton expression c'est vrai.
 
Si c'est pas ça ce que tu veux, va falloir être plus précise cher CeCe.

 

CeCe bon j'ai un controle, si quelqu'un peut m'aider c'est cool!!
 
j'ai jusqu'a 16h maxi...
 
(ls -w ||whoami) && date
(ls -w && whoami) ||date
 
ca veut dire quoi?
 
merci

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)