unix - resueltos - ¿Cómo hacer que sed lea su script desde un archivo?
scripts bash ejemplos (2)
Recientemente me encontré con el siguiente comando grep:
/usr/xpg4/bin/grep -Ff grep.txt input.txt > output.txt
que según mi entendimiento significa que desde input.txt, grep la materia contenida en grep.txt y la salida a output.txt.
Quiero hacer algo similar para sed, es decir, quiero mantener los comandos sed en un archivo separado (por ejemplo, sed.txt) y quiero aplicarlos en el archivo de entrada (decir input.txt) y crear un archivo de salida (decir output.txt ).
Traté de seguir:
/usr/xpg4/bin/sed -f sed.txt input.txt > output.txt
No funciona y me sale el siguiente error:
sed: command garbled
Los contenidos de los archivos mencionados anteriormente son los siguientes:
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
En lugar de mantener los comandos sed en un archivo de texto separado, puede intentar crear un script sed. El siguiente archivo puede ejecutarse directamente en sus archivos de datos:
./myscript.sed inputfile.txt> outputfile.txt
#!/bin/sed -f
s/234/acn/
s/78gt/hit/
Su sed.txt
solo debe contener comandos sed
: Sin prefijo con sed
o sufijo con un archivo de entrada. En tu caso probablemente debería ser:
# sed.txt
s/234/acn/
s/78gt/hit/
Cuando se ejecutó en su entrada:
$ /usr/xpg4/bin/sed -f sed.txt input.txt
acnGH 5acnBTW 89er 678tfg acn acnYT tfg456 wert hit ghacn44