循环文件以执行 ncdump?
For Loop Over Files to Perform ncdump?
似乎找不到可靠的类似问题。简而言之,我只是想对多个文件执行一个操作,但我很难处理 for 循环。我想一次 ncdump 多个文件并将输出存储在单独的文件中。这是我到目前为止所拥有的。
#!/bin/bash
date='20160503'
dump1Dir=/server1/applications/VAL/gran_files
cd $dump1Dir
filelist=`ls *s$date*`
for i in $filelist do
ncdump $filelist > dumpfile[i]
done
我认为你想要的是这样的:
for file in *s$date*.nc; do ncdump "$file" > "${file%.nc}.cdf"; done
但这包括一堆假设。
它将做的是:
- 查找名称以扩展名
.nc
结尾并包含 s
后跟变量值 $date
的所有文件
- 对于每个这样的文件,使用
ncdump
创建一个同名文件,将扩展名从 nc
更改为 cdf
这也应该有效(假设源文件的扩展名为 .nc,输出使用的是 .cdf)
cd $dump1Dir
ls -1 *s$date*.nc | while read file; do ncdump "$file" > "${file%.nc}.cdf"; done
似乎找不到可靠的类似问题。简而言之,我只是想对多个文件执行一个操作,但我很难处理 for 循环。我想一次 ncdump 多个文件并将输出存储在单独的文件中。这是我到目前为止所拥有的。
#!/bin/bash
date='20160503'
dump1Dir=/server1/applications/VAL/gran_files
cd $dump1Dir
filelist=`ls *s$date*`
for i in $filelist do
ncdump $filelist > dumpfile[i]
done
我认为你想要的是这样的:
for file in *s$date*.nc; do ncdump "$file" > "${file%.nc}.cdf"; done
但这包括一堆假设。
它将做的是:
- 查找名称以扩展名
.nc
结尾并包含s
后跟变量值$date
的所有文件
- 对于每个这样的文件,使用
ncdump
创建一个同名文件,将扩展名从nc
更改为cdf
这也应该有效(假设源文件的扩展名为 .nc,输出使用的是 .cdf)
cd $dump1Dir
ls -1 *s$date*.nc | while read file; do ncdump "$file" > "${file%.nc}.cdf"; done