你好
我写了一个小脚本:
#!/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
这怎么可能?
将脚本主体用大括号括起来并重定向到 /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
重定向。
Also: beware- 你可能需要使用${i}_changed
and ${i}_353
。这就是为什么输出不会进入文件......你的变量${i_changed}
and ${i_353}
未初始化,因此重定向不会命名文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)