我有几个带有模式的目录:
$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.ref
和grep
可能会这样,但我不知道怎么做。任何的想法?或者只是手动创建每一个是唯一的方法(就像我对这个目录所做的那样)。感谢
答案 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
并重新运行。