Bash 是否允许循环文件执行ncdump?
似乎找不到可靠的类似问题。基本上,我只是尝试对多个文件执行一个操作,但我很难处理for循环。我想一次转储多个文件,并将输出存储在单独的文件中。这就是我目前所拥有的Bash 是否允许循环文件执行ncdump?,bash,shell,netcdf,Bash,Shell,Netcdf,似乎找不到可靠的类似问题。基本上,我只是尝试对多个文件执行一个操作,但我很难处理for循环。我想一次转储多个文件,并将输出存储在单独的文件中。这就是我目前所拥有的 #!/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
#!/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
- 我认为你想要的是:
for file in *s$date*.nc; do ncdump "$file" > "${file%.nc}.cdf"; done
但这包括一系列假设
它将做的是:
- 查找名称以扩展名
结尾的所有文件,并包含一个.nc
,后跟变量s
$date
- 对于每个这样的文件,使用
创建一个同名文件,将扩展名从ncdump
更改为nc
cdf
你写的东西根本不清楚你到底想做什么。您可以尝试使用简洁的解释进行解释,例如“对于名称与模式匹配的每个文件,我想使用ncdump创建一个名为…”的可读文件。示例也不会有什么坏处。我想对几百个文件执行“ncdump”命令,并将输出存储在单独的文本文件中,因此output1.txt、output2.txt、,等等我了解ncdump的功能,我尝试在数百个文件上执行它,而不必手动ncdump每个文件。我知道你想要一个循环。但是我不知道你想把输出文件命名为什么,也不知道你想把它们写在哪里,因为
dumpfile[I]
毫无意义。所以我的回答有几个假设。我想把输出文件命名为一些通用的名称,比如“dumpfile1”、“dumpfile2”等等,这样我就知道该文件是ncdump的输出结果。[i]应该是一个交互,比如1,2,3,4,5等等。我对for循环和语法感到非常困惑,希望这能澄清问题。不管输出文件名是什么,你回答这个问题的结果对我来说都是有效的。从你写的内容来看,你实际上想做什么根本不清楚。您可以尝试使用简洁的解释进行解释,例如“对于名称与模式匹配的每个文件,我想使用ncdump创建一个名为…”的可读文件。示例也不会有什么坏处。我想对几百个文件执行“ncdump”命令,并将输出存储在单独的文本文件中,因此output1.txt、output2.txt、,等等我了解ncdump的功能,我尝试在数百个文件上执行它,而不必手动ncdump每个文件。我知道你想要一个循环。但是我不知道你想把输出文件命名为什么,也不知道你想把它们写在哪里,因为dumpfile[I]
毫无意义。所以我的回答有几个假设。我想把输出文件命名为一些通用的名称,比如“dumpfile1”、“dumpfile2”等等,这样我就知道该文件是ncdump的输出结果。[i]应该是一个交互,比如1,2,3,4,5等等。我对for循环和语法感到非常困惑,希望这能澄清问题。无论输出文件名如何,您回答问题的结果都对我有效。这正是我所寻找的,非常有效。这正是我所寻找的,非常有效。