我需要用另一個字符串替換文件中的字符串,但在替換之前,我需要在將新字符串傳遞給sed
之前將其小寫。將tr輸出重定向到sed
echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | sed 's/foo/(my tr output in lowercase)/g' file.txt
我的問題是,我們怎麼能忽略替換字符串作爲參數?
我需要用另一個字符串替換文件中的字符串,但在替換之前,我需要在將新字符串傳遞給sed
之前將其小寫。將tr輸出重定向到sed
echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | sed 's/foo/(my tr output in lowercase)/g' file.txt
我的問題是,我們怎麼能忽略替換字符串作爲參數?
sed "s/foo/$(echo .. |tr ...)/g" file.txt
使用xargs
嘗試,如:
echo 'NEWSTRING' | tr '[:upper:]' '[:lower:]' | xargs -I '{}' sed 's/foo/{}/g' file.txt
這可能爲你工作(GNU SED):
sed 's/foo/\L'"NEWSTRING"'/'g file
我也不得不增加-i選項來取代它在文件中。 – PapelPincel
是的,對,我沒有想到sed命令,正在考慮其他問題。 –