交互式查找和替换 - Bash脚本

时间:2016-02-01 21:14:46

标签: bash shell sed

我理解这个问题在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作为工作脚本的想法吗?

感谢阅读。

1 个答案:

答案 0 :(得分:1)

首先,您应该在最后一行切换单引号和双引号。这样,bash会用值替换你的变量。 其次,您应该在FIND和REPLACE值周围添加一些转义。对于其中一个将使用包含/字符的值的情况。