【问题标题】:How to create a list of files and directories using csh for use in a program如何使用 csh 创建文件和目录列表以在程序中使用
【发布时间】:2013-06-09 04:23:54
【问题描述】:

我正在编写一个非常小的 csh 脚本,它使用 foreach 循环读取文件列表,通过一个名为“rdseed”的程序运行文件,将它们转换为另一种文件类型,然后输出新文件。

我对编程非常缺乏经验,但到目前为止我的脚本运行良好,但我需要将文件输出到它们所在的目录中。

更具体地说,我在 /home/Jesse/seajadedata/LandStations/Test/20100902/ 中有一个文件,但是在 Test 目录中还有其他几个子文件夹。我正在从“/Jesse”目录运行我的 csh 脚本,所有新的输出文件随后都放在“/Jesse”目录中,这使所有文件变得杂乱无章。程序上有一个选项“rdseed”允许指定输出目录,所以我想做的是编写程序,以便我的文件列表与它们所在的目录列表相关联,但我不确定该怎么做。

这是我的脚本:

#!/bin/csh

set startdir=/home/Jesse/seajadedata/LandStations/Test
foreach file(`find $startdir -type f -name "*.*.S.*"`)
rdseed -d -q $outputdir -f $file
end

如你所见,我在需要指定输出目录的地方写了 $outputdir。感谢您的帮助!

【问题讨论】:

  • 问得很好!我相信您会想使用dirnamebasename 分别获取您遇到的每个路径的目录和文件名。

标签: foreach csh


【解决方案1】:

我想我应该把它写成答案,嗯。试试:

rdseed -d -q `dirname $file` -f `basename $file`

【讨论】:

  • 太棒了!谢谢一堆。我的剧本最终变得有点复杂,但你给了我一个很好的开始。我不知道 dirname 和 basename 函数。
猜你喜欢
  • 2014-05-11
  • 2011-03-09
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2012-06-20
  • 2014-05-21
  • 2014-07-12
  • 1970-01-01
相关资源
最近更新 更多