我试图在我的脚本中输出’awk’结果文件,但没有成功.
使用’>’不起作用,为什么?
for a in $(find $OUPUT_DIR/ -maxdepth 1 -mindepth 1 -type d -printf "%P\n")
do
echo $a is a directory
awk -F, '{ if ($10 == '"$a"') print $0 }' $OUPUT_DIR/CDRNOutput_${CDR_DATE}.csv > $OUPUT_DIR/$a/CDR-${CDR_DATE}.csv
done
解决方法:
输出重定向通常是你正在使用的shell的一个特性,并且考虑到它有多少使用,如果你发现了一个bug,我会非常惊讶:-)
你确定你没有尝试用awk本身而不是shell进行重定向吗?
当你这样做时会发生什么:
echo 'hello' | awk '{print}' >qq.tmp
更新:
如果这是你所说的代码,那是因为你的shell脚本没有扩展$a,因为awk命令在单引号内.
for a in $(find $OUPUT_DIR/ -maxdepth 1 -mindepth 1 -type d -printf "%P\n")
do
echo $a is a directory
awk -F, '{ if ($10 == '"$a"') print $0 }' $OUPUT_DIR/CDRNOutput_${CDR_DATE}.csv > $OUPUT_DIR/$a/CDR-${CDR_DATE}.cs