bash – while循环中的文件复制仅执行一次
发布时间:2020-12-15 20:55:02 所属栏目:安全 来源:网络整理
导读:我正在使用条件检查检查日志并复制到另一个文件夹.在第一次迭代时,while循环正常执行.在下一次迭代中,文件副本不起作用.这是我的代码. current_time=$(date "+%Y.%m.%d-%H.%M.%S")tail -n 0 -F hive-server2.log | while read LINEdoif [ `echo "$LINE" | g
我正在使用条件检查检查日志并复制到另一个文件夹.在第一次迭代时,while循环正常执行.在下一次迭代中,文件副本不起作用.这是我的代码.
current_time=$(date "+%Y.%m.%d-%H.%M.%S") tail -n 0 -F hive-server2.log | while read LINE do if [ `echo "$LINE" | grep -c "DROP" ` -gt 0 ] then AuditTypeID=14 QueryResult="$(grep -oEi 'DROP TABLE [a-zA-Z][a-zA-Z0-9_]*' hive-server2.log | sed -n $p)" echo -e "$QueryResult" >/dev/null < op.txt cp op.txt op/op.txt.$current_time fi done 在第一次迭代中,输出文件被创建并存储在op目录中.在下一次迭代中,文件未创建. 预期产量: 任何帮助将不胜感激. 解决方法
希望这对你有所帮助.
tail -n 0 -F hive-server2.log | while read LINE do if [ `echo "$LINE" | grep -c "DROP" ` -gt 0 ] then current_time=$(date "+%Y.%m.%d-%H.%M.%S") AuditTypeID=14 QueryResult="$(grep -oEi 'DROP TABLE [a-zA-Z][a-zA-Z0-9_]*' hive-server2.log | sed -n $p)" echo -e "$QueryResult" > op/op.txt.$current_time > /dev/null 2>&1 #cp op.txt op/op.txt.$current_time fi done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |