[Shell] : string contenue dans une autre
Résolu/Fermé
A voir également:
- [Shell] : string contenue dans une autre
- Classic shell windows 11 - Télécharger - Personnalisation
- Shell startup windows 10 - Guide
- Ssh secure shell download - Télécharger - Divers Web & Internet
- Efi shell version 2.50 - Forum Windows 10
- Classic shell c'est quoi ✓ - Forum Windows 8 / 8.1
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
10 févr. 2012 à 18:12
10 févr. 2012 à 18:12
$ ls file1 file2 foo.sh* $ cat file1 Mystring $ cat file2 My $ cat foo.sh #!/bin/bash grep -q -f $2 $1 if [[ $? = 0 ]] then echo "It's there!" > $3 fi $ ./foo.sh file1 file2 file3 $ ls file1 file2 file3 foo.sh* $ cat file3 It's there! $
;-))
Géca
Messages postés
799
Date d'inscription
samedi 29 novembre 2003
Statut
Contributeur
Dernière intervention
29 juin 2015
106
10 févr. 2012 à 16:41
10 févr. 2012 à 16:41
Bonjour,
Connaissez-vous la commande diff ?
--
Connaissez-vous la commande diff ?
--
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
10 févr. 2012 à 16:45
10 févr. 2012 à 16:45
Salut,
Pourquoi elle est sensée répondre à ses attentes ?
La commande "diff" compare le contenu de 2 fichiers (ou répertoires), mais en aucun cas ne peut déterminer si le contenu d'un fichier est présent dans l'autre ;-(
Pourquoi elle est sensée répondre à ses attentes ?
La commande "diff" compare le contenu de 2 fichiers (ou répertoires), mais en aucun cas ne peut déterminer si le contenu d'un fichier est présent dans l'autre ;-(
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
10 févr. 2012 à 17:17
10 févr. 2012 à 17:17
C'est dans quel but ce script ?
En fait je travaille en radiothérapie et on utilise un logiciel de planification de traitement (Pinnacle) permettant d'automatiser pas mal d'étape à l'aide de script (le code est propre au logiciel et basé sur du c++). Je voudrais détruire un objet si son nom contient les caractères "eq" mais c'est impossible à faire avec le code du logiciel. Il faut donc que j'envoie les actions à effectuer dans un terminal, que j'effectue les opérations en shell et que je récupère le résultat dans le script Pinnacle. Je sais envoyer les deux chaînes de caractères d'intérêt dans deux fichiers distincts (ou dans un mais ça à l'air plus compliqué à exploiter ?!) et je sais lire le fichier dans lequel sera stocké le résultat. Mais entre ces deux opération, tout ce qui est du shell, je ne vois pas comment m'en sortir ...
(je ne sais pas si je suis très clair, je peux détailler certains points si ça peut aider)
(je ne sais pas si je suis très clair, je peux détailler certains points si ça peut aider)
Géca
Messages postés
799
Date d'inscription
samedi 29 novembre 2003
Statut
Contributeur
Dernière intervention
29 juin 2015
106
10 févr. 2012 à 18:24
10 févr. 2012 à 18:24
Désolé effectivement la commande diff n'aide en aucune manière dans le cas proposé.
11 févr. 2012 à 17:27
14 févr. 2012 à 13:04
File1 contient : Mystring
File2 contient : My
File3 contient : 0 !!!!
Par contre j'ai modifié légèrement le script foo.sh pour rajouter un else :
#!bin/bash
grep -q -f $2 $1
if [[ $? = 0 ]]
then
echo "1" > $3
else
echo "0" > $3
fi
14 févr. 2012 à 13:11
:-))
14 févr. 2012 à 14:07
il me retourne :
grep: illegal option -- q
grep: illegal option -- f
Usage: grep -hblcnsviw pattern file . . .
Alors qu'initialement on a les mêmes fichiers ! le nom diffère, en fait, j'envoie très exactement la commande :
./contains.sh Temporary_string_83724.Script Temporary_stringSearch_83724.Script Temporary_stringSearchResult_83724.Script
Il ne s'agit pas d'un problème de version bash, bourne, c ? (je m'y connais pas du tout)
14 févr. 2012 à 14:11