Как вывести отдельные альтернативы с Bash, вложенным в цикл? - PullRequest
0 голосов
/ 14 января 2019

У меня есть каталог, организованный следующим образом:

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

1 Ответ

0 голосов
/ 14 января 2019

Вы можете использовать этот цикл:

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%_*}" удалит правую часть строки, начиная с _

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...