当我在命令行执行此操作时:
awk 'BEGIN{OFS=FS=","}$3~/^353/{print}' axeM10_20110510100219_59.DAT_353 >log
它很好地执行vey而不花太多时间并立即给我输出文件。
但是当我将它包含在shell脚本中时:
#!/usr/bin/ksh
for i in *.DAT_353
do
awk 'BEGIN{OFS=FS=","}$3~/^353/{print}' ${i} > ${i}_changed >/dev/null
done
exit
该脚本生成一个0字节的文件。 我可以知道这里有什么问题吗?
答案 0 :(得分:5)
删除>/dev/null
,因为这是您的stdout被重定向到的地方。
答案 1 :(得分:0)
就像Dogbane指出的那样,
>
默认重定向标准输出。因此,没有必要强行重定向它。以下是更多重定向技巧Standard Input and Output Redirection