Linux 对目录中的所有文件运行可执行文件,并获得与原始文件对应的不同输出文件

Linux 对目录中的所有文件运行可执行文件,并获得与原始文件对应的不同输出文件,linux,shell,terminal,executable,csh,Linux,Shell,Terminal,Executable,Csh,我有一个Redhat Linux终端程序,它使用以下命令: 程序输入文件输出文件 Inputfile是我要修改的文件的名称,outputfile是输出文件的名称 我需要一个c shell命令,它可以在同一目录(001p.pdb一直到361p.pdb)中的所有文件上运行该程序,并创建名为001h.pdb、002h.pdb的输出文件。。。361h.pdb在以下情况下使用sh作为子shell而不是csh可能会更快,但下面的代码在任何shell中都可以工作: find . -maxdepth 1 -r

我有一个Redhat Linux终端程序,它使用以下命令: 程序输入文件输出文件

Inputfile是我要修改的文件的名称,outputfile是输出文件的名称


我需要一个c shell命令,它可以在同一目录(001p.pdb一直到361p.pdb)中的所有文件上运行该程序,并创建名为001h.pdb、002h.pdb的输出文件。。。361h.pdb

在以下情况下使用sh作为子shell而不是csh可能会更快,但下面的代码在任何shell中都可以工作:

 find . -maxdepth 1 -regex '\./[0-9][0-9][0-9]p\.pdb' | xargs -I _IN_ csh -c 'program _IN_ `echo _IN_ | sed -e s/p/h/`'

假设文件位于当前工作目录中,但该命令可以轻松扩展以处理任意目录。

祝您好运!当您遇到困难,并有一些代码向我们展示时,请更新您的问题,我们将乐意提供帮助。现在,我担心如果你自己不努力的话,你将得不到任何答案。我还有一些带有字符(大写字母、数字、下划线)和pdb扩展名的文件。如果我希望输出在扩展名(pdb)之前只有一个h,我将如何修改此代码?我想你会做$\.pdb'| xargs。。。。。这是正确的吗?我们只说-regex'[^h]\.pdb'怎么样?这对你有用吗?或者-regex'[^h][.]pdb'?把钥匙放进去。括号内,防止CSH拉动\?(我对CSH的逃跑规则从来没有很好的把握…)