免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2165 | 回复: 5
打印 上一主题 下一主题

急,如何用grep命令实现成功或失败的输出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-14 15:26 |只看该作者 |倒序浏览
成功的样例
wld.log
Table CIN_CAPACITY_INFORMATION_NEW:
  312 Rows successfully loaded.
  0 Rows not loaded due to data errors.
  0 Rows not loaded because all WHEN clauses were failed.
  0 Rows not loaded because all fields were null.


如果下面这三行都是以0开头,表示没有失败的记录,即全部成功,如何用grep命令表示
  0 Rows not loaded due to data errors.
  0 Rows not loaded because all WHEN clauses were failed.
  0 Rows not loaded because all fields were null.



失败的样例
wld.log
Table CIN_CAPACITY_INFORMATION_NEW:
  310 Rows successfully loaded.
  2 Rows not loaded due to data errors.
  0 Rows not loaded because all WHEN clauses were failed.
  0 Rows not loaded because all fields were null.


如果下面这三行只要有一行不是以0开头,就表示有失败的记录,即表示失败
  0 Rows not loaded due to data errors.
  2 Rows not loaded because all WHEN clauses were failed.
  0 Rows not loaded because all fields were null.
可以用表示 grep -i "[1-9] rows not loaded"

请问我如何用grep命令动态地表示成功或是失败呢? 即要输出表示这个日志是成功了还是失败了,不知如何实现,请指教
armStrong 该用户已被删除
2 [报告]
发表于 2004-05-14 15:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2004-05-14 16:30 |只看该作者

急,如何用grep命令实现成功或失败的输出

  1. [[ $(cat file|wc -l) -eq $(grep -wc ^0 file) ]]&&echo "ok"||echo "false"
复制代码

论坛徽章:
0
4 [报告]
发表于 2004-05-14 16:55 |只看该作者

急,如何用grep命令实现成功或失败的输出

test.sh内容

#!/bin/csh -f
cp current_`date +%d-%b-%Y|tr -s "[]" "[]"`.csv /ue21/as52app/OUT/batch/import
cp current_2`date +%d-%b-%Y|tr -s "[]" "[]"`.csv /ue21/as52app/OUT/batch/import
cd import
mv current_`date +%d-%b-%Y|tr -s "[]" "[]"`.csv test1.csv
mv current_2`date +%d-%b-%Y|tr -s "[]" "[]"`.csv test2.csv
cd ..


sqlldr userid=tpas_user/tpas_user control=import1.ctl  log=`date +%Y%m%d-1` skip=1
sqlldr userid=tpas_user/tpas_user control=import2.ctl  log=`date +%Y%m%d-2` skip=1

set log1=`date +%Y%m%d-1.log`
set log2=`date +%Y%m%d-2.log`

set file1=`date +%d-%b-%Y|tr -s "[]" "[]"`.csv
set file2=`date +%d-%b-%Y|tr -s "[]" "[]"`.csv


if grep -i "[1-9] rows not loaded" $log1 >/dev/null
then
echo "NOT OK"
else
echo "OK"
fi


if grep -i "[1-9] rows not loaded" $log2 >/dev/null
then
echo "NOT OK"
else
echo "OK"
fi

运行test.sh
错误提示:
if :Expression syntax

论坛徽章:
0
5 [报告]
发表于 2004-05-14 17:11 |只看该作者

急,如何用grep命令实现成功或失败的输出

test.sh

#!/bin/csh -f
cp current_`date +%d-%b-%Y|tr -s "[]" "[]"`.csv /ue21/as52app/OUT/batch/import
cp current_2`date +%d-%b-%Y|tr -s "[]" "[]"`.csv /ue21/as52app/OUT/batch/import
cd import
mv current_`date +%d-%b-%Y|tr -s "[]" "[]"`.csv test1.csv
mv current_2`date +%d-%b-%Y|tr -s "[]" "[]"`.csv test2.csv
cd ..


sqlldr userid=tpas_user/tpas_user control=import1.ctl  log=`date +%Y%m%d-1` skip=1
sqlldr userid=tpas_user/tpas_user control=import2.ctl  log=`date +%Y%m%d-2` skip=1

set log1=`date +%Y%m%d-1.log`
set log2=`date +%Y%m%d-2.log`

[[ $(cat log1|wc -l) -eq $(grep -wc ^0 log1) ]]&&echo "ok"||echo "false"
[[ $(cat log2|wc -l) -eq $(grep -wc ^0 log2) ]]&&echo "ok"||echo "false"

运行test.sh,错误提示如下:
Variable syntax

注:我的操作系统是sunOS 5.8

论坛徽章:
0
6 [报告]
发表于 2004-05-14 17:15 |只看该作者

急,如何用grep命令实现成功或失败的输出

[quote]原帖由 "bjgirl"][[ $(cat file|wc -l) -eq $(grep -wc ^0 file) ]]&&echo "ok"||echo "false"[/quote 发表:
我试验了一下   用得是楼主ok得数据 输出是false   
我不大懂  我觉得cat file| wc -l 是求log得行数   grep -wc ^0 file 是求以0为首得行数   然后看二者相不相等   无论成功失败都有310 Rows successfully loaded.    这样就永远不相等了  输出只会是false
还是和3比好
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP