kornshell模式检测与删除
我正在与Korn Shell合作,尝试检测平面文件中不需要的错误消息。平面文件有多个错误记录,其中某些错误记录可以删除,其他错误记录需要保留。错误如下: 消息:TR0405严重性:04 收到的应用程序数据将被忽略。 废话废话 需要删除,而带有任何其他代码的邮件需要保留在中。我在删除此记录时遇到问题,同时无法保持下一个记录的完整性。我想从检测到的模式中删除 消息:TR0405严重性:04 到下一个检测到的模式 信息: 我当前的代码:kornshell模式检测与删除,shell,unix,ksh,Shell,Unix,Ksh,我正在与Korn Shell合作,尝试检测平面文件中不需要的错误消息。平面文件有多个错误记录,其中某些错误记录可以删除,其他错误记录需要保留。错误如下: 消息:TR0405严重性:04 收到的应用程序数据将被忽略。 废话废话 需要删除,而带有任何其他代码的邮件需要保留在中。我在删除此记录时遇到问题,同时无法保持下一个记录的完整性。我想从检测到的模式中删除 消息:TR0405严重性:04 到下一个检测到的模式 信息: 我当前的代码: sed -e "/Message: TR0405 Se
sed -e "/Message: TR0405 Severity: 04/,/Message:/{//p;d;}" test.txt > newTest.txt
rm test.txt
mv newTest.txt test.txt
数据示例:
消息:TR0405严重性:04
收到的应用程序数据将被忽略
废话废话
消息:TR0405严重性:04
收到的应用程序数据将被忽略
废话废话
消息:TR0405严重性:04
收到的应用程序数据将被忽略
废话废话
更多的废话
消息:TR0425严重性:04
定时错误
废话废话
比如:(根据新示例进行编辑)
#/bin/ksh
日志文件=$1
读行时;做
如果[[$line==Message*];然后
标志=0
案例$line in
*TR0405*)是否继续
;;
“”)继续
;;
*)打印$line>>logresult.txt
标志=1
;;
以撒
elif[$flag-等式1]];然后
打印$line>>logresult.txt
fi
完成<$Logfile
您可以在case语句中添加任何错误代码。以您的数据为例,它运行良好。错误报告可以出现在多行上,我如何解释这一点?您应该始终给出有意义的数据示例。你能提供一个真实的例子吗?好的,我编辑了问题中的例子,以更好地反映我所拥有的。可能
print-r--“$line”
不仅仅是print$line
…
#!/bin/ksh
Logfile=$1
while read line; do
if [[ $line == Message* ]]; then
flag=0
case $line in
*TR0405*) continue
;;
"") continue
;;
*) print $line >> logresult.txt
flag=1
;;
esac
elif [[ $flag -eq 1 ]]; then
print $line >> logresult.txt
fi
done < $Logfile