我有一个文件,我需要使用sed
来处理它。
命令在终端和脚本中有不同的操作
这是我的命令:sed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d'
。
现在,如果我从终端执行此命令,例如,sed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d' myfile.txt
,它运行良好。但是,如果我用相同的命令编写bash脚本,它将删除所有行。
#!/bin/bash
sed -i -e '/.*tour\.html\|.*Thumb[^\/]*\.jpg/!d' "$1"
该脚本将删除文件中的所有行。
我的电脑是Mac OS。
在这两种情况下显示'sed --version'和'sed --help'(-i部分)的输出。 – Yunnosch
@Yunnosch我在终端执行'sed --version',我得到了一些信息,而我在脚本中编写了'sed --version'并执行这个脚本,出现错误:'sed:illegal option - -' 。那意味着我有两种'sed'? – Yves
^^是的,你可能已经安装了2份'sed'。根据你的'PATH'变量,'bash'在两种情况下选择不同的。在两种情况下检查'which sed'的输出。 – anishsane