Unix 如何让sed从文件中读取脚本?

Unix 如何让sed从文件中读取脚本?,unix,sed,Unix,Sed,最近我遇到了以下grep命令: /usr/xpg4/bin/grep -Ff grep.txt input.txt > output.txt 根据我的理解,这意味着从input.txt,grep包含在grep.txt中的内容,并将其输出到output.txt 我想为sed做一些类似的事情,即我想将sed命令保存在一个单独的文件(比如sed.txt)中,并想将它们应用到输入文件(比如input.txt)上,然后创建一个输出文件(比如output.txt) 我尝试了以下几点: /usr/xp

最近我遇到了以下grep命令:

/usr/xpg4/bin/grep -Ff grep.txt input.txt > output.txt
根据我的理解,这意味着从input.txt,grep包含在grep.txt中的内容,并将其输出到output.txt

我想为sed做一些类似的事情,即我想将sed命令保存在一个单独的文件(比如sed.txt)中,并想将它们应用到输入文件(比如input.txt)上,然后创建一个输出文件(比如output.txt)

我尝试了以下几点:

/usr/xpg4/bin/sed -f sed.txt input.txt > output.txt
它不工作,我得到以下错误:

sed: command garbled
上述文件内容如下:

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

您的
sed.txt
应该只包含
sed
命令:不使用
sed
前缀或输入文件后缀。在您的情况下,它可能是:

# sed.txt
s/234/acn/
s/78gt/hit/
在您的输入上运行时:

$ /usr/xpg4/bin/sed -f sed.txt input.txt
acnGH 5acnBTW 89er 678tfg acn acnYT tfg456 韦特 打 ghacn44
您可能希望尝试创建一个sed脚本,而不是将sed命令保存在单独的文本文件中。以下文件可以直接在您的数据文件上运行:

./myscript.sed inputfile.txt>outputfile.txt

#!/bin/sed -f
s/234/acn/
s/78gt/hit/
#!/bin/sed -f
s/234/acn/
s/78gt/hit/