Comment faire lire le script depuis le fichier script?

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/