示例文件:
sample1_day1 /
sample2.str
sample2.yy
sample2_ABE.log
sample2_day1 /
sample3.str
sample3.yy
sample3_ASC.log
sample3_day1 /
for i in `echo *$FILTER | sed 's/'$FILTER'//'`;do
"something here";
done
我用它来循环遍历文件:
$i
在这种情况下,这将获得“标识符”,“sampleX” 但当我用它来遍历文件夹时,它就失败了。
我需要将for i in something; do
"program --input $i.str --input2 $i.yy --out $i\_clean.txt"
done
指定为“名称标签”,以便轻松命名程序所需的输出和输入文件,如:
cd
我希望我的bash脚本在给定文件夹(iesample1_day1等)的情况下获取“sampleX”的名称并制作sampleX的列表,将此标识符用于cd $i\_day1
(例如submit
)到文件夹并在该文件夹中进行一些分析,然后相应地命名输出和输入。
简而言之,我如何获得sample1和sample2以及sample3并将它们表示为i?
由于
答案 0 :(得分:1)
for i in */ ; do
"program --input $i.str --input2 $i.yy --out $i\_clean.txt"
done
答案 1 :(得分:1)
如果它只是sample1,sample2,sample3那么这也可以 -
for i in {1..3}
do
"program --input sample"$i".str --input2 sample"$i".yy --out sample"$i"\_clean.txt"
done
答案 2 :(得分:1)
@ fedterzi答案的修改版本很少。这个只能在示例 _day1 或示例 _day * 内导航,即使你有不同名字的目录。
#!/bin/bash
for i in sample*_day1/ ; do
cd $i
"program --input $i.str --input2 $i.yy --out $i\_clean.txt"
done
答案 3 :(得分:-1)
阅读和阅读了几个小时后,我意识到缺少的东西:表示其属性的“/”。
但当然。然后我也在@Parthiban和@fedterzi的答案中注意到这一点(谢谢你们!)。