gpt4 book ai didi

bash - 在文件夹 shell 脚本中搜索和替换字符串

转载 作者:行者123 更新时间:2023-11-29 09:28:53 25 4
gpt4 key购买 nike

我正在使用下面的脚本来搜索和替换文件夹中的字符串。我如何修改代码以读取从文本文件中读取多个 $searchname 和 $replacename 并替换原始文件夹中的单词?

文件夹如下:

main folder: /USERS/path/to/test/

test 文件夹内:

data.txt   original/  script.sh  tmp/

原始文件夹内:

file1.txt file2.php ...........

data.txt 中:

a1 a2
b1 b2
c1 c2

搜索和替换脚本:

 !/bin/bash

FOLDER="/Users/path/to/test/original/"
echo "******************************************"
echo enter word to replace
read searchterm
echo enter word that replaces
read replaceterm



for file in $(grep -l -R $searchterm $FOLDER)


do

sed -e "s/$searchterm/$replaceterm/g" $file > /Users/path/to/test/tmp/tempfile.tmp
mv /Users/path/to/test/tmp/tempfile.tmp $file

echo "Modified: " $file

done




echo " *** All Done! *** "

提前致谢。

最佳答案

设置搜索和替换项的文件(我将其命名为 search_and_replace.txt)如下所示:

searchone/replaceonesearchtwo/replacetwofoo/bar...

然后你的 bash 脚本变成:

!/bin/bashFOLDER="/Users/path/to/test/original/"while read line; do    for file in `find $FOLDER -type f`; do        sed -i -e "s/$line/g" $file    donedone < search_and_replace_terms.txt

我认为不需要使用 grep 进行预搜索。

关于bash - 在文件夹 shell 脚本中搜索和替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9058757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com