Vij*_*jay 5 unix shell awk ksh
嗨我写了一个小脚本:
#!/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
Run Code Online (Sandbox Code Playgroud)
我测试了它和它的wrking罚款.但是它将输出提供给屏幕我不需要输出到屏幕.我只需要制作最终文件$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
Run Code Online (Sandbox Code Playgroud)
这也会将错误发送到比特桶.这可能不是一个好主意; 如果您不想这样,请删除2>&1重定向.
另外:注意 - 你可能需要使用${i}_changed和${i}_353.这就是为什么输出不是文件...你的变量${i_changed}并${i_353}没有初始化,因此重定向不命名文件.
| 归档时间: |
|
| 查看次数: |
8751 次 |
| 最近记录: |