从目录创建文件更改其结尾

时间:2014-02-12 13:45:24

标签: linux

我有几个带有模式的目录:

$find -name "*.out" 
./trnascanse.out
./darn.out
./blast_rnaz.out
./erpin.out
./rnaspace_cli.out
./yass.out
./atypicalgc.out
./blast.out
./combine.out
./infernal.out
./ecoli.out
./athaliana.out
./yass_carnac.out
./rnammer.out

我可以将列表放入文件find -name "*.out" > files,因为我想为每个目录创建一个以.ref而不是.out结尾的文件:trnascanse.ref,{{1 },darn.ref等等。

我想说有些blast_rnaz.refgrep可能会这样,但我不知道怎么做。任何的想法?或者只是手动创建每一个是唯一的方法(就像我对这个目录所做的那样)。感谢

2 个答案:

答案 0 :(得分:0)

使用此:

find -maxdepth 1 -type d  -printf "%f" -exec bash -c "mkdir $(echo '{}' | sed 's/\.out$//').ref" \;

答案 1 :(得分:0)

这是一种方式:

for d in *.out ; do echo touch "${d%.out}.ref" ; done

$ {d%.out}扩展$ d并删除尾随的.out。在bash手册页中阅读它。

如果上述单行的输出看起来没问题,请将其输出到sh,或删除echo并重新运行。