我試圖創建一個shell搜索和替換函數來替換目錄中的所有字符串。問題是如何獲得遞歸grep的輸出並使用它來查找sed使用的文件?如何獲得遞歸grep的輸出並將其分解爲像變量這樣的數組?
我有以下管道grep -R protal ./ | sed 's/:.*//g' | sed 's/\/\//\//g'
。它產生這樣的輸出:
./settings.py
./settings.py
./settings.py
./urls.py
./wsgi.py
./wsgi.py
我想借此把它分解成一個數組或東西,所以我可以做的(僞代碼):
for [[ $file in $file_list ]]; do
sed -i 's/$input_string/$replace_value/g' $file
done
我將如何做呢?
這是唯一明智的答案。 –
好的,所以我喜歡這個答案,但它肯定比我最初的想法好,但是,我得到一個錯誤。 sed返回sed:1:「./file」:無效的命令代碼。「怎麼了? – Jonathan
其中一個shell變量是否包含斜槓?如果是這樣,請參閱https://stackoverflow.com/questions/5864146/use-slashes-in-sed-replace – Wintermute