如何从结果中获取特定的位置线?

时间:2013-06-18 12:17:08

标签: unix grep

我从一个目录和该模式之前的4行grep一个模式,我需要进一步grep每个结果的顶行,但不知道怎么做。 请对此提出建议。

问题以示例解释:

在'jagdeep'目录中 有多个不同名称的文件,如20130611和2013400等。 我感兴趣的文件中写的数据是这样的:

[
My name is 
.....
......
......
Name has been written above
]

现在在每个实例中“上面写的名称”是以行为单位写的,但值继续改变而不是“我的名字是”所以我想从每次出现时grep这条特定的行。

请建议一些方法来获得结果。

提前致谢。

2 个答案:

答案 0 :(得分:0)

a@x:/tmp$ cat namefile
[
My name is 
.....
......
......
Name has been written above
]
a@x:/tmp$ cat namefile | grep -B 4 "Name has been written above" | head -1
My name is 

其中“4”可以被N替换,即行数目标数据位于grepped线上方

答案 1 :(得分:0)

尝试类似

的内容
for file in $(ls <wherever>)
do

    # Tell the user which file we're looking at

    echo ""
    echo $file
    echo ""

    # Output the first line of the file

    head -1 $file

    # Output the line continaing <pattern> and the four
    # preceding lines

    <your grep command here>
done