J'ai regardé cette question: BASH Vérificateur de Palindrome. Voici ce que montre la réponse à la question de ce fil de discussion:
grep -E '^[a-z]{3,45}$' /usr/share/dict/words | while read -r word;
do [ $word == `echo $word | rev` ] && echo $word;
done;
Je comprends que cela lit à partir de "words" mais j'ai du mal à essayer de le modifier pour lire à partir d'un fichier texte au lieu de /usr/share/dict/words
. Je veux qu'il lise n'importe quel fichier texte que je demande, donc je peux mettre:
source palindrome *nom_fichier*
et cela affichera les palindromes trouvés dans le fichier dans la console. Ensuite, je veux pouvoir le faire pour pouvoir le sortie dans un fichier de sortie:
source palindrome *nom_fichier* >> output.txt
J'ai essayé de faire cela mais cela ne fonctionne pas et je ne suis vraiment pas sûr de ce que je dois changer pour qu'il lise mon fichier:
#!usr/bin/bash
function search
{
filename=$1
grep -E '^[a-z]{3,45}$' "$filename" | while read -r word;
do [ $word == `echo $word | rev` ] && echo $word;
done;
}
search $1
Si des solutions sont données elles pourraient être dans un format similaire? Je n'ai pas encore appris beaucoup d'autres techniques. Si des solutions plus complexes sont données, pourriez-vous expliquer un peu le code donné s'il vous plaît.
Le fichier d'entrée est d'un livre électronique, il est extrêmement long donc un petit extrait est: (je réalise que cela ne montre pas de palindromes dans l'extrait mais c'est juste pour montrer quel type de fichier texte c'est)
O and that lotion mustn't forget.
Fever near her mouth. Your head it simply. Hair braided over: shell with
seaweed. Why do they hide their ears with seaweed hair?
Lorsque je lance la commande source palindrome nom_fichier il n'y a pas de message d'erreur. J'appuie sur Entrée et le terminal me permet de taper à nouveau n'importe quoi. Il ne semble pas qu'il exécute le script.