搜索一个文件中每行一个单词,然后搜索下特定的消息几行

问题通过的文件迭代,并抢得基于前驱要求的特定字符串。

我是新来的bash脚本,并通过在线初学者和高级教程已阅读,但不能真正找到任何解决这个问题。

我有我想(在下面的例子XXXX)来搜索特定词的日志文件

如果/当脚本发现这个词它,然后搜索下几行并输出位于价值观“/ * * /”之间的消息

因此,脚本需要能够遍历整个日志文件,“/ * * /”,但只有XXXX后看到的只是抢的消息。

这里是将需要遍历一个例子文件。 该脚本应拉出2错误消息。



TRD sdfnWW4 < computer_name 11-02-03 17:03:30 T sdfnWW4 XXXXX MFKG "::fmksdfjes" /* Error message #1 to grab */ asfdadsf adfadfasd fasd sd - RAS WEASDF < computer_name 11-02-03 18:03:30 WEASDF "::fmksdfjes" sdfa thmghjg g5w45g5 < sdfnWW4 < computer_name 11-02-03 17:03:30 T sdfnWW4 XXXXX MFKG "::fmksdfjes" /* Error message #2 to grab */ adfadfasd sd



这里是我开始的,简单的文件阅读剧本剧本,但XXXX搜索后的代码是在那里我难倒。

#!/bin/sh echo enter file name read fname exec<$fname value=0 while read line do if [[ $line == *XXXX* ]] then "this is the part that has me stumped" fi done

在此先感谢您的帮助。

--------------解决方案-------------

如果你有红宝石(1.9+)

$ ruby -ne 'BEGIN{$/="<"};puts $_.scan(/\/\*(.*?)\*\//)[0][0] if /XXXXX/' file
Error message #1 to grab
Error message #2 to grab

如果没有,AWK

$ awk 'BEGIN{RS="<";FS="*/"} /XXXXX/{ gsub(/.*\/\*/,"",$1) ;print $1 }' file
Error message #1 to grab
Error message #2 to grab

如果你有机会到grep中,grep可以轻松过滤相关线路。 我建议你​​在这个命令读了,但你

grep XXXX filename -A3

这将输出线从指定的文件名文件,该文件包含字符串XXXX每个实例,这是你想要的东西后,3条线。 然后,你可以从那里通过管道输出到另一个grep来过滤掉非注释行提取注释文本:

grep "/*"

相结合,这是:

grep XXXX filename -A3 | grep "/*"

你可以设置一个标志,当你发现你的标记,那么如果标志设置,增加一个计数器。 如果计数器未超过阈值,你会发现你正在寻找行,打印。 否则,复位标志和计数器。 你可以简单地使用计数器作为标志。

#!/bin/bash
# UNTESTED - check especially for off-by-one errors

limit=4

read -r -p "enter file name: " fname

exec<$fname
value=0
while read line
do
if [[ $line == *XXXX* ]]
then
counter=1
fi
if (( counter > 0 && counter <= limit ))
then
if [[ $line == */\**/\** ]]
then
printf '%s\n' "$line"
# setting counter to zero here means only the first instance is printed
# remove it to print multiple instances following a marker
counter=0
fi
(( counter = (counter + 1) % limit ))
fi
done

请注意,我改变了你的家当抨击,因为这是你如何标记你的问题。

分类:庆典 时间:2015-03-15 人气:2
本文关键词: 庆典
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.255 (s). 10 q(s)