Moi et un ami travaillons sur un projet, et nous devons créer un script qui peut aller dans un fichier, et remplacer toutes les occurrences d'une certaine expression/mot/lettre avec un autre en utilisant Sed. Il est conçu pour passer par plusieurs tests remplaçant toutes ces occurrences, et nous ne savons pas ce qu'ils seront, nous devons donc anticiper n'importe quoi. Nous avons des problèmes avec un certain test où nous devons remplacer 'l *' par 'L' dans différents fichiers en utilisant une boucle. Le code que j'ai estProblèmes avec les scripts shell en utilisant Sed
#!/bin/sh
p1="$1"
shift
p2="$1"
shift
for file in "[email protected]" #for any file in the directory
do
# A="$1"
#echo $A
#B="$2"
echo "$p1" | sed -e 's/\([*.[^$]\)/\\\1/g' > temporary #treat all special characters as plain text
A="`cat 'temporary'`"
rm temporary
echo "$p1"
echo "$file"
sed "s/$p1/$p2/g" "$file" > myFile.txt.updated #replace occurances
mv myFile.txt.updated "$file"
cat "$file"
done
J'ai essayé de tester cela sur les fichiers de pratique qui contiennent des mots différents et aussi « l * » Mais chaque fois que je le tester, il supprime tout le texte dans le fichier. Quelqu'un peut-il m'aider avec cela, nous aimerions le faire bientôt. Merci
Bienvenue dans Stack Overflow. Si cette question concerne un devoir, veuillez ajouter l'étiquette de devoirs. – pb2q