gpt4 book ai didi

linux - 使用包含文件夹的名称搜索并替换为多个文件

转载 作者:太空宇宙 更新时间:2023-11-04 05:29:34 24 4
gpt4 key购买 nike

我有多个文件夹,其名称为:

1_1,1_2,...,2_1,...,

每个文件夹都包含名为 file.sh 的相同文件。该文件具有以下形式:

job_name=NAME

Partition = Long

我想在终端 (Linux) 中对我的所有文件夹使用搜索和替换命令,例如以下

find . -type f -name "file.sh" -print |xargs sed -i 's/job_name/REPLACED_TEXT/g'

REPLACED_TEXT的位置我想要文件夹的名称。例如,在文件夹1_1内,将有file.sh文件,其修改后的形式为:

job_name=1_1

Partition = Long

我还没有找到解决方案。

最佳答案

您没有指定可能需要遍历多少个子目录,例如

./1_1/file.sh
./1_2/file.sh
./a/b/c/1_1/file.sh

因此,为此我只假设一个子目录,如下所示:

./1_1/file.sh
./1_2/file.sh

像下面这样的东西应该能够让你开始,而不是测试,只是把它写在我的脑海里。它是由 bash 脚本编写的,但您可以将其变成一个又大又长的命令。确保首先备份您的目录,以防脚本产生不可预测的结果。

for i in `find . -type f -print "file.sh"`; 
do
subdir=`echo $i | awk -F\/ '{print $2}'`
sed -e s/job_name=NAME/jobname=$subdir/ $i > $i.bak
mv $i.bak $i
done

关于linux - 使用包含文件夹的名称搜索并替换为多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24251689/

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