|
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 |
Aperçu |
---|
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 | 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.
|
jupiler | ouaips, question suivantess:hap: |
Toxin | Voilà !!!!! A deux on y arrive :D |
jupiler |
|
Toxin | Vi. En awk je sais faire mais pas sur une seule ligne. |
jupiler |
|
Toxin |
|
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 | 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
|
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.
|
Toxin | Da file ist good.
Mais j'ai des problèmes avec la comparaison. |
PinG |
arf!
|
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 |