Page 1 sur 1

[bash] command cut

Publié : mar. 28 déc. 2010, 13:05
par redox972
Salut a tous,

J'essayais pour le fun d'afficher dans la console :

Code : Tout sélectionner

nombre de fichiers sur votre ordinateur : x
où x représente le nombre de fichiers.

j'ai donc utilisé la commande:

Code : Tout sélectionner

echo "nombre de fichiers sur votre ordinateur:" ; sudo find /  * | cat -b | tail -n 1 | cut -d / -f 1- 

explications:
- dabord je fais un find / * pour lister tous les fichiers présents
- le cat -b affiche la liste avec les numéros de ligne
- le tail -n 1 garde la dernière ligne
- et le cut -d / -f 1- doit garder uniquement le nombre

affichage:

Code : Tout sélectionner

fichiers sur l'ordinateur:
Mot de passe : 
226589	test
Je rencontre malheureusement 2 gros soucis:
  • Le filtrage du nombre
problème:
le soucis du cut utilisé avec le séparateur "/" c'est que le dernier fichier trouvé ne commence pas par / et donc le nom du fichier est conservé.

objectif:
Je veux utiliser l'espace " " comme séparateur mais je ne sais pas comment faire

  • La présentation
problème:
Le résultat est affiché sur plusieurs lignes et en plus il y a la ligne d'entrée du mdp pour le sudo.

objectif
tout afficher sur une ligne.
Mais comment faire ?


Je sais que j'ai c'est un peu tordu xD, merci d'avance pour vos réponses

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 13:26
par grosbedos
Bonjour,

Ce ne serait pas plus simple comme cela ?

find / * | wc -l

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 13:27
par benjarobin
Aller je te le fait en beaucoup plus court

Code : Tout sélectionner

echo "nombre de fichiers sur votre ordinateur:" ; sudo find /  * | wc -l
Edit : bien grillé :( :D :copain:

Sinon pourquoi tu fait find / * et non pas simplement find /
Pour le problème du mot de passe, le plus simple est de faire un script que tu lancera par sudo ou root, celui-ci contiendra :

Code : Tout sélectionner

#/!bin/bash
echo "nombre de fichiers sur votre ordinateur: $(find / | wc -l)"
Ou alors comme ceci :

Code : Tout sélectionner

su -c 'echo "nombre de fichiers sur votre ordinateur: $(find / | wc -l)"'

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 13:30
par grosbedos
Si tu le veux sur la même ligne ;)

echo "nb fichiers" `find / * | wc -l`

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 13:35
par grosbedos
Et si tu veux vraiment utiliser cut, cela peut convenir :

find / * | cat -b | tail -n 1 | cut -f 1

Par défaut cut utilise tab comme délimiteur, c'est ce qu'il nous faut.

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 13:58
par redox972
MDR, je me disais aussi qu'il y avait plus simple. je débute alors :oops:
Edit: c'était jsute pour essayer la commande cut, j'essaie de me familiariser avec les autres petit à petit.
Prochaine étape -> les scripts

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 14:36
par grosbedos
Ben avec la commande cut tu avais bon, sauf que le délimiteur n'etait pas un slash mais une tabulation ;)

Bonne chance pour la suite!

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 14:53
par redox972
merci beaucoup et vive le monde linux.

Une petite question justement.

Quand on est débutant comme ça il faut beaucoup pratiquer et je voulais savoir si il existait des sites/ebooks avec des exos en bash et aussi en langage C.

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 14:55
par Sarkhan
Ah ouais ça m'intéresse aussi tiens ! :copain:

Re: [bash] command cut

Publié : mar. 28 déc. 2010, 15:59
par redox972
$find internet "exercices bash et C" ? xD