klo*_*lor 3 command-line bash sed shell-script
SED 命令不会在 Debian 下的 bash 中替换,但可以在命令行中使用。
在命令行中工作:
sed -i 's|/dev/disk/by-label/SR6D4|/dev/disk/by-label/SR4D4|g' /etc/my/config.xml
Run Code Online (Sandbox Code Playgroud)
不在 bash 脚本中工作,不替换字符串:
from="SR6D4"
to="SR4D4"
path_from="/dev/disk/by-label/${from}"
path_to="/dev/disk/by-label/${to}"
echo "sed -i 's|${path_from}|${path_to}|g' $file"
sed -i 's|${path_from}|${path_to}|g' $file
Run Code Online (Sandbox Code Playgroud)
为什么在 bash 中使用 sed 时不替换文件中的字符串?
Shell 变量不会在单引号中展开。(这有点像单引号的用途。)
sed -i "s|${path_from}|${path_to}|g" "$file"
Run Code Online (Sandbox Code Playgroud)
应该工作得更好。(我在周围添加了双引号$file,以防您的文件名包含空格。)
| 归档时间: |
|
| 查看次数: |
16460 次 |
| 最近记录: |