如何让sed从脚本文件中读取脚本?
问题描述:
最近我碰到以下grep命令:如何让sed从脚本文件中读取脚本?
/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 wert hit ghacn44
答
而不是保持sed的命令在一个单独的文本文件,你可能想尝试创建sed脚本。下面的文件,可以在你的数据文件,直接运行:
./myscript.sed inputfile.txt> outputfile.txt
#!/bin/sed -f
s/234/acn/
s/78gt/hit/