Unix
sed 用包含另一個 unix 路徑的變數替換 unix 路徑
我需要通過 sed 將 Unix 路徑替換為在 bash 腳本中包含另一個 unix 路徑的變數
例子:
another_unix_path=/another/unix/path sed -i 's/ \/some\/path\/file.txt/ '$another_unix_path'/g' some_file.txt
您需要轉義特殊字元:
another_unix_path="\/another\/unix\/path" echo /some/path/file.txt | sed -e 's/\/some\/path\/file.txt/'$another_unix_path'/g'
輸出此結果:
/另一個/unix/路徑
轉義特殊字元
/
是一種選擇。您還可以使用以下範例更改預設
sed
分隔符(即):/``?
another_unix_path="/another/unix/path" echo /some/path/file.txt | sed -e 's?/some/path/file.txt?'$another_unix_path'?g'
標誌後面使用的字元
s
定義了將使用哪個分隔符:s?
編輯 :
#!/bin/sh basepath=/another/unix/path baseurl=/base/url sed -i 's?# set $IMAGE_ROOT /var/www/magento2;? set $IMAGE_ROOT '$basepath$baseurl';?g' somefile.txt