我正在开发一个 bash 脚本,该脚本将使用通配符路径搜索特定文件,一旦找到该文件名,它就会在文件中搜索特定术语,然后替换它。
这是我已经放在一起的内容:
#!/bin/sh
PATH=${1}
FILENAME="$2"
SEARCHFOR="$3"
/usr/bin/clear
echo "Searching $PATH"
echo "For the file $FILENAME"
echo "With the string $SEARCHFOR"
echo "=========================="
echo " RESULTS "
echo "=========================="
/usr/bin/find $PATH -type f -name "$FILENAME" | /usr/bin/xargs /bin/grep -l "$SEARCHFOR"
我还没有添加替换,但我想我会使用 SED 而不是 grep 来做到这一点,只是使用 grep 进行测试。
使用上面的代码,我必须为任何类型的通配符路径使用引号。有没有解决的办法?
./script '/home/*/public_html' php.ini module.so
我在想也许可以使用参数,但必须有另一种方法来做到这一点。
我的最终目标是拥有一个 bash 脚本,我可以将通配符路径或文件名传递给它,它会搜索该文件,一旦它找到它搜索特定术语的文件并在找到时替换它。
听起来很简单,应该是这样,但我正把头撞在桌子上,因为我已经很久没有搞砸 bash 了……aaggghh 帮助!