您好 我写了一个小脚本:
#!/usr/bin/ksh
for i in *.DAT
do
awk 'BEGIN{OFS=FS=","}$3~/^353/{$3="353861958962"}{print}' $i >> $i_changed
awk '$3~/^353/' $i_changed >> $i_353
rm -rf $i_changed
done
exit
我对它进行了测试,并对其进行了测试。
但是它将输出提供给屏幕我不需要输出到屏幕。
我只需要制作$i_353
怎么可能?
答案 0 :(得分:6)
将脚本的主体包裹在大括号中并重定向到/ dev / null:
#!/usr/bin/ksh
{
for i in *.DAT
do
awk 'BEGIN{OFS=FS=","}$3~/^353/{$3="353861958962"}{print}' $i >> $i_changed
awk '$3~/^353/' $i_changed >> $i_353
rm -rf $i_changed
done
} >/dev/null 2>&1
这也会向位桶发送错误。这可能不是一个好主意;如果您不想这样,请删除2>&1
重定向。
另外:要注意 - 您可能需要使用${i}_changed
和${i}_353
。这就是为什么输出不会转到文件...您的变量${i_changed}
和${i_353}
未初始化,因此重定向不会命名文件。