我正在尝试提取.gz
文件并将其传递给将其转换为分隔文件的函数。 .gz
包含.grib2
文件,我可以使用名为wgrib2的实用程序将其转换为csv。问题是我需要能够直接访问文件名。
这是我的非功能性脚本
#!/bin/bash
gunzip $1 | wgrib2 $arg1 -csv ${arg1/.grib2/.csv}
wgrib2需要三个参数:infile,format,outfile
我不一定知道文件名,所以我想要
答案 0 :(得分:2)
<( )
运算符将执行命令并将其stdout
重定向到您可以传递给另一个程序的命名管道。 $( )
运算符将执行命令并将其stdout
插入到位。您可以使用这两个操作符zcat
(将文件解压缩到stdout)和basename
来执行您想要的操作。
wgrib2 <(zcat $1) -csv $(basename $1 .grib2).csv