Rechercher : dans
Par :

[Unix] Besoin d'aide pour commandes de base

Dernière réponse le 4 nov 2006 à 19:13:56 BobaL, le 3 nov 2006 à 16:58:37 
 Signaler ce message aux modérateurs

Salut,

Voila j'ai un peut de boulot pour les vacances et j'ai besoin de votre aide...
Ce sont des commandes unix pour exécuter des actions simples mais quelques unes me posent problème :

1- vous désirez regrouper dans un repertoire rangement les fichiers dont le nom contient un caractère minuscule suivi d'un caractère majuscule. Quelle(s) est/sont la/les commande(s) à donner ?

2- idem mais avec les fichiers dont le nom contient 3 voyelles à la suite.

3- en utilisant ls et grep, afficher la liste des fichiers dans /bin dont le nom :
. commence par "a" et dont la deuxième lettre est "s" ou "t";
. contient "un" et se termine par "t".

Ce qui me gène en fait c'est la succession des critères de recherche... j'ai bo chercher impossible de trouver.

Si vous pouvez m'aider... merci beaucoup. ++

Meilleures réponses pour « [Unix] Besoin d'aide pour commandes de base » dans :
[MS-Dos] Commandes DOS de base VoirCes commandes sont des commandes de base que vous pouvez utiliser dans un prompt DOS, par exemple, sur une disquette de démarrage. Pour obtenir plus d'informations sur ces commandes, tapez (dans un prompt DOS), le nom de votre commande suivi de...
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
Introduction aux systèmes UNIX VoirLe système UNIX Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs...

1

jipicy, le 3 nov 2006 à 17:37:39

Salut,

1- vous désirez regrouper dans un repertoire rangement les fichiers dont le nom contient un caractère minuscule suivi d'un caractère majuscule.

ls | grep '^[a-z][A-Z]'

2- idem mais avec les fichiers dont le nom contient 3 voyelles à la suite.

ls | grep -E '[aeiouy]{3}'

3- en utilisant ls et grep, afficher la liste des fichiers dans /bin dont le nom :
. commence par "a" et dont la deuxième lettre est "s" ou "t";


ls | grep '^a[st]'

. contient "un" et se termine par "t".

ls | grep -E 'un{1,}t$'
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

BobaL, le 3 nov 2006 à 17:53:47

Merci mais pour les 2 premiers points la question est différente que pour les 2 suivants...

je voyait plutot un truc dans le genre :

mkdir Rangement/
mv *[a-z][A-Z]* Rangement/

mais ça fonctionne pas...

Merci encore. ++

Répondre à BobaL

3

jipicy, le 3 nov 2006 à 18:01:34

mkdir Rangement
for i in $(ls | grep '^[a-z][A-Z]'); do mv "$i" Rangement/ ; done
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

BobaL, le 4 nov 2006 à 15:40:00

J'en peux plus... 2 jours de Terminal et j'arrive a rien...

Donc je viens a nouveau faire appel aux bonnes volontés mais cette fois ci c'est du lourd 8-)

1- On ne s'interesse ici qu'à des fichiers contenant un mot par ligne. Ecrire un script qui compte le nombre de mots contenant une des lettres "r", "s" et "t", et parmi eux, ceux qui ont au moins deux telles lettres. On donnera aussi le nombre de mots ne contenant aucune voyelle. Cela donnera par exemple :
"Dans ce fichier vous avez :"
"45 mots contenant "r", "s" et "t", et parmi eux,"
"12 contiennent deux de ces lettres au moins."
"Il y a aussi 10 mots ne contenant aucune voyelle."

2- On veut chercher toutes les occurences des quatre éléments (terre, air, eau, feu) dans la première partie du fichier Germinal.
On veut aussi que le résultat soit placé dans un fichier, et que le résultat soit classé : toutes les lignes qui contiennent "air", puis celles qui contiennent "eau", etc.

3- Chercher le mot "mine" dans les chapitres 3, 4, et 5 de la première partie du fichier germinal, et obtenir un fichier dans lequel figure le nombre d'occurences du mot dans les fichiers, avec le numéro des lignes.

Voilà j'arrête là...

Donc si vous savez faire ça sans forcer, je serais heureux que vous m'aidiez

Merci a toutes les bones volontés. ++

Répondre à BobaL

5

 jipicy, le 4 nov 2006 à 19:13:56

Salut,

1- On ne s'interesse ici qu'à des fichiers contenant un mot par ligne. Ecrire un script qui compte le nombre de mots contenant une des lettres "r", "s" et "t", et parmi eux, ceux qui ont au moins deux telles lettres. On donnera aussi le nombre de mots ne contenant aucune voyelle. Cela donnera par exemple :
"Dans ce fichier vous avez :"
"45 mots contenant "r", "s" et "t", et parmi eux,"
"12 contiennent deux de ces lettres au moins."
"Il y a aussi 10 mots ne contenant aucune voyelle."

#! /bin/bash

val1=$(egrep -c '(r|s|t)' fichier.txt)

val2=$(egrep -c '(.*r+.*t+.*)|(.*r+.*s+)|(.*s+.*t+)' fichier.txt)

val3=$(egrep -cv '[aeiouy]' fichier.txt)

echo -e "Dans ce fichier vous avez :\n"
echo -e "$val1 mots contenant \"r\", \"s\" et \"t\", et parmi eux,"
echo -e "$val2 contiennent deux de ces lettres au moins."
echo -e "Il y a aussi $val3 mots ne contenant aucune voyelle."

2- On veut chercher toutes les occurences des quatre éléments (terre, air, eau, feu) dans la première partie du fichier Germinal.
On veut aussi que le résultat soit placé dans un fichier, et que le résultat soit classé : toutes les lignes qui contiennent "air", puis celles qui contiennent "eau", etc.

for i in air eau feu terre ; do grep "$i" monfich.txt >> resultat.txt ; done

3- Chercher le mot "mine" dans les chapitres 3, 4, et 5 de la première partie du fichier germinal, et obtenir un fichier dans lequel figure le nombre d'occurences du mot dans les fichiers, avec le numéro des lignes.
grep "mine" texte.txt | sed -e 's/\.//g'  -e 's/\,//g' -e s'/ /\n/g'| grep -c "mine" > sortie.txt && grep -n "mine" texte.txt >> sortie.txt
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy
Collection CommentÇaMarche.net