我正在尝试运行一个简单的bash
脚本,该脚本运行名为subj1
,subj2
等文件夹,并在每个文件夹中执行awk
脚本。问题是awk
命令执行两次,即使它只在脚本中列出一次。我刚开始使用bash
,我不确定我是否理解这里发生了什么。任何帮助表示赞赏。
for i in `seq 1 10`;
do
cd subj$i
awk -f ../melt.awk subj$i_*.txt
cd ..
done
答案 0 :(得分:3)
Underscore是一个有效的标识符字符,因此
subj$i_*.txt
在bash中被解释为
subj${i_}*.txt
这不是你想要的。将i
与下划线分开:
subj${i}_*.txt
或
subj$i\_*.txt
顺便说一句,你可以打电话给
awk -f met.awk subj{1..10}_*.txt