Bash 更改文件中的文本,使文本现在对应于子目录

Bash 更改文件中的文本,使文本现在对应于子目录,bash,shell,terminal,command,Bash,Shell,Terminal,Command,我需要更改位于每个子目录中的每个参数文件中的文本。共有361个子目录 摘自参数文件: PDB文件夹名称 发件人:~josh/Documents/Model_Files/Analysis/FolderName FolderName需要对应于参数文件所在的每个子目录。 如何在终端中使用shell为所有361个子目录执行此操作?我不太熟悉batch和所有这些东西。类似的东西: find . -mindepth 2 -name "*" -exec sh -c 'sed -i "s,PBD FolderN

我需要更改位于每个子目录中的每个参数文件中的文本。共有361个子目录

摘自参数文件:

PDB文件夹名称

发件人:~josh/Documents/Model_Files/Analysis/FolderName

FolderName需要对应于参数文件所在的每个子目录。 如何在终端中使用shell为所有361个子目录执行此操作?我不太熟悉batch和所有这些东西。

类似的东西:

find . -mindepth 2 -name "*" -exec sh -c 'sed -i "s,PBD FolderName,PBD $(echo $(basename $(dirname {})))," {}' \;

你是说FolderName而不是PDB?它如何知道使用文件夹名?下面是它如何知道当前目录:$echo$basename$dirname{}。试试这个命令,看看它是否适合你。它用所有文件中的子目录名替换PDB。我需要替换FolderName,而不是PDB。。。这是终端对每个目录的响应:有关详细信息,请尝试“basename-help”。sh:dirname./0050/Refmt2b.out:没有这样的文件或目录我已经更新了答案,用子目录名替换了FolderName。您需要在所有子目录之上的目录中运行此命令。Works!谢谢唯一的一点是,它不会更改文件第二行中的后续文件夹名:~josh/Documents/Model_Files/Analysis/FolderName。因此,我再次使用了该命令,只是用Analysis/Folder更改了PDB。。。。