0

我正在尝试使用sed删除包含变量的行$filegrep

filename=$(basename "$1")
filegrep=$(grep "$filename" /home/$USER/Desktop/Trash/Index/Index.txt)
filefir=$(dirname "filegrep")

我正在尝试使用以下命令来做到这一点:

sed -i '/$filegrep/d' /home/$USER/Desktop/Trash/Index/Index.txt

但是,我收到错误

sed: no input files
4

1 回答 1

1

带引号的 var 中的字符串'不会扩展变量:

marc@panic:~$ touch test.txt
marc@panic:~$ X=test.txt
marc@panic:~$ ls '$X'    <---single-quoted
ls: cannot access $X: No such file or directory
marc@panic:~$ ls "$X"    <---double-quoted
test.txt

将 sed 调用中的引号更改为"

sed -i "/$filegrep/d" /home/$USER/Desktop/Trash/Index/Index.txt
       ^--          ^--
于 2013-07-17T14:21:17.770 回答