我的目录组织如下:
1.0ps_DCA_md_center.xtc
1.0ps_DCA_npt.gro
1.2ps_DCA_md_center.xtc
1.2ps_DCA_npt.gro
1.8ps_DCA_md_center.xtc
1.8ps_DCA_npt.gro
2.0ps_DCA_md_center.xtc
2.0ps_DCA_npt.gro
我想用bash输出:
1.0ps_DCA_npt.gro
1.0ps_DCA_md_center.xtc
1.2ps_DCA_npt.gro
1.2ps_DCA_md_center.xtc
1.8ps_DCA_npt.gro
1.8ps_DCA_md_center.xtc
2.0ps_DCA_npt.gro
2.0ps_DCA_md_center.xtc
请注意在.gro
和.xtc
文件之间进行切换。
到目前为止,我已经尝试了for循环的几种组合,但是没有任何效果。 如果有人可以帮助我,我将不胜感激。
for i in *.gro; do echo $i; for j in *.xtc; do echo $j; done; done
1.0ps_DCA_npt.gro
1.0ps_DCA_md_center.xtc
1.2ps_DCA_md_center.xtc
1.8ps_DCA_md_center.xtc
2.0ps_DCA_md_center.xtc
1.2ps_DCA_npt.gro
1.0ps_DCA_md_center.xtc
1.2ps_DCA_md_center.xtc
1.8ps_DCA_md_center.xtc
2.0ps_DCA_md_center.xtc
1.8ps_DCA_npt.gro
1.0ps_DCA_md_center.xtc
1.2ps_DCA_md_center.xtc
1.8ps_DCA_md_center.xtc
2.0ps_DCA_md_center.xtc
2.0ps_DCA_npt.gro
1.0ps_DCA_md_center.xtc
1.2ps_DCA_md_center.xtc
1.8ps_DCA_md_center.xtc
2.0ps_DCA_md_center.xtc
答案 0 :(得分:3)
您可以使用此循环:
for i in *.gro; do
echo "$i"
echo "${i%_*}"*.xtc
done
1.0ps_DCA_npt.gro
1.0ps_DCA_md_center.xtc
1.2ps_DCA_npt.gro
1.2ps_DCA_md_center.xtc
1.8ps_DCA_npt.gro
1.8ps_DCA_md_center.xtc
2.0ps_DCA_npt.gro
2.0ps_DCA_md_center.xtc
"${i%_*}"
将剥离以_
开头的字符串的右侧