2013-07-17 70 views
0

我試圖用sed刪除其中包含一個行的變量$filegrep使用sed來刪除一個變量

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 
+0

歡迎堆棧溢出。請儘快閱讀[關於]頁面。請注意,花時間讓拼寫正確。很顯然,'fielgrep','filegrep - $(...)','unput'是拼寫錯誤;我懷疑'filefir'也是一個(更可能是'filedir');並且很可能該行應該是'filedir = $(dirname「$ filegrep」)'。請閱讀如何創建SSCCE([簡短,獨立,正確的示例](http://sscce.org/))。 –

回答

1

字符串' -quote d瓦爾不擴大變量:在SED通話

[email protected]:~$ touch test.txt 
[email protected]:~$ X=test.txt 
[email protected]:~$ ls '$X' <---single-quoted 
ls: cannot access $X: No such file or directory 
[email protected]:~$ ls "$X" <---double-quoted 
test.txt 

更改你的報價來"

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