我理解这个问题在bash / perl世界中被提出过很多问题。
我可以在这里欣赏答案 Interactive search and replace from shell
:argdo %s#SEARCH#REPLACE#gec |update
这对我来说没问题,我喜欢并使用vi。
但我想将this概念提升到新的水平
以上链接给出的答案如下:
sed -i -e 's/foo/bar/g' filename
这又有效。
所以为了使它成为可执行/交互式脚本..我试过这样的事情:
#!/bin/sh
read -r -p "Search For: " FIND
read -r -p "Replace With: " REPLACE
read -r -p "Full Path To File: " FILE
sed -i -e 's/"${FIND}"/"${REPLACE}"/g' "$FILE"
但是,如果您正在阅读本文,您可能知道无法在bash脚本中运行sed
这样的内容。
有关将此find_replace.sh
作为工作脚本的想法吗?
感谢阅读。
答案 0 :(得分:1)
首先,您应该在最后一行切换单引号和双引号。这样,bash会用值替换你的变量。 其次,您应该在FIND和REPLACE值周围添加一些转义。对于其中一个将使用包含/字符的值的情况。