J'ai du travail à faire à bash. Cela se passe comme suit:Trouver les mots dans le bon ordre
Comme premier argument, vous tapez des mots pour le trouver dans les fichiers dans l'ordre où il est écrit, dans le deuxième argument, vous tapez le répertoire. Il doit rechercher récursivement et retourner le nom du fichier où il apparaît.
Par exemple: bash mybash "alice cat" .
il doit retourner les fichiers qui contiennent par exemple: "alice a un chat", "chat alice", mais pas "chat a alice"
Je ne smething comme ce
#!/bin/bash
pattern=".*"
for arg in $1; do
pattern+="${arg}.*"
done
grep -r ${pattern} $2
mais il ne recherche que ligne par ligne et ne trouve pas les fichiers avec:
« alice quelque chose d'autre »
« nouvelle ligne a un chat "
mais il devrait le retourner.
De l'aide serait appréciée.
Salutations.
Je ne comprends pas pourquoi il devrait retourner "alice quelque chose d'autre" mais pas "chat a alice"? Pourquoi devrait-il retourner "alice quelque chose d'autre" quand "chat" n'est pas là? – jedwards
si vous tapez dans l'argument "alice cat" il doit être dans le fichier dans le même ordre, donc il ne peut pas retourner "chat a alice" parce que "alice" est avant "cat" – tobi
Je comprends mais le fichier contenant "alice quelque chose d'autre "ne contient pas de" chat "du tout. – jedwards