Récemment, je suis tombé sur la commande grep suivante:
/usr/xpg4/bin/grep -Ff grep.txt input.txt > output.txt
ce qui, selon ma compréhension, signifie que depuis input.txt, placez le contenu contenu dans grep.txt dans le fichier output.txt.
Je veux faire quelque chose de similaire pour sed, c’est-à-dire que je veux garder les commandes sed dans un fichier séparé (disons sed.txt) et que je veux les appliquer au fichier d’entrée (disons input.txt) et créer un fichier de sortie ).
J’ai essayé de suivre:
/usr/xpg4/bin/sed -f sed.txt input.txt > output.txt
Cela ne fonctionne pas et j’obtiens l’erreur suivante:
sed: command garbled
Le contenu des fichiers mentionnés ci-dessus est comme ci-dessous:
sed.txt
sed s/234/acn/ input.txt sed s/78gt/hit/ input.txt
input.txt
234GH 5234BTW 89er 678tfg 234 234YT tfg456 wert 78gt gh23444
S’il vous plaît conseil.
Votre sed.txt
ne devrait contenir que les commandes sed
: Pas de préfixe avec sed
ou suffixe avec un fichier d’entrée. Dans votre cas, cela devrait probablement être:
# sed.txt s/234/acn/ s/78gt/hit/
Lorsque couru sur votre saisie:
$ /usr/xpg4/bin/sed -f sed.txt input.txt
AcNGH 5acnBTW 89er 678tfg acn acnYT tfg456 wert frappé ghacn44
Plutôt que de conserver les commandes sed dans un fichier texte distinct, vous pouvez essayer de créer un script sed. Le fichier ci-dessous peut s’exécuter directement sur vos fichiers de données:
./myscript.sed inputfile.txt> outputfile.txt
#!/bin/sed -f s/234/acn/ s/78gt/hit/