【发布时间】:2012-04-13 22:27:36
【问题描述】:
自从我使用 csh 格式以来已经有一段时间了,我在一些事情上遇到了一些麻烦。在 Matlab 中执行起来似乎要容易得多,但是由于我要与之交互的程序,我需要在终端上执行此操作。
这就是我想要做的:我有一个结构如下的文件 del.txt
1
2
3
4
等等。所以每个值都在它自己的行中,并且所有数据都有一列。我的目录中有很多其他文件。我想将值 1(在本例中为 1)与文件 1 匹配,将值 2 与文件 2 匹配,依此类推。所以这就是我所做的......
代码:
!/bin/csh
foreach a (cat del.txt)
foreach sta(ls *.HHZ)
echo a is $a
echo $sta
cat <<END>>macro.m
r $a
r $sta
结束
sac macro.m
rm macro.m
结束
结束
但是我实现的是它遍历 del.txt 和每个文件中的所有值,然后移动到我目录中的下一个文件并遍历所有值。我无法弄清楚这应该采用的格式以匹配正确的值。在我能让它们匹配之前,我还没有在脚本中做太多事情。请帮助有人可以告诉我我做错了什么吗?我读到 foreach 命令将执行每个文件上的所有命令..但无法找到解决此问题的方法。我想要它做的是从 del.txt 中获取值 1 并将其与目录中的文件 1(sta)匹配完成循环,然后从 del.txt 中获取值 2 并将其与目录中的文件 2 匹配(站)。我从来没有在一个文件子集上使用 csh 进行简单的迭代,而且我不确定如何将这些值相互引用。任何帮助将不胜感激。我还没有找到一种简单的方法来做到这一点而不把所有的东西都写出来。我查看了“for”和“while”命令。如果有简单的方法可以做到,我没有看到。
干杯, 克
【问题讨论】:
标签: loops for-loop foreach nested