使用sed的时候,我最常用的做法是这样:
sed -i 'sed脚本' 文件名
bash命令 | sed 'sed脚本'
现在我想在test.sh脚本中这么使用sed:
#!/bin/bash
cmd="sed -i 'sed脚本'"
$(${cmd} ${1})
对test文件使用test.sh脚本,就会报错:
$ ./test.sh test
sed: -e expression #1, char 1: unknown command: `''
这时候可以使用-e选项为sed命令提供脚本。
-e选项的说明如下:
-e script, --expression=script
add the script to the commands to be executed
为了使用test.sh脚本,将test.sh修改为
#!/bin/bash
cmd="sed -i -e sed脚本 "
$(${cmd} ${1})
使用-e script, --expression=script选项而不是单引号传递脚本内容