在一个文件中找到彼此n行的两个字符串

时间:2014-04-24 05:11:11

标签: string pattern-matching

我试图找到如何在n行中的文本文件中搜索两个字符串。 例如,给定文件:

abc def
SSSSSS
SSSSSS
SSSSSS
SSSSSS
SSSSSS
pqr xyz

我想" myscript abc pqr 5"除了" myscript abc pqr 7(或更高版本)"返回找到它的文件名和(奖励)匹配的行和介入的行。它应该适用于任何字符串。

为了让它变得有趣,我正在使用Solaris 10并且无法访问任何gnu命令或扩展。这就像在糖蜜中游泳一样。

TIA

佰。

1 个答案:

答案 0 :(得分:0)

这个脚本几乎可以帮助你:

#!/bin/bash
if [[ $(pcregrep -M "$1.*(\n|.)*$2" test.txt | wc -l) == $3 ]]
then
  echo "found"
else
  echo "not found"
fi

您可以修改此项以查找文件名,而不仅仅是打印"找到"。

此脚本的灵感来自this answer