我想搜索下面给出的字符串匹配文件文本
[zero or more white-space]AA[one or more white-space]AA[zero or more white-space]
[zero or more white-space]BB[one or more white-space]BB[zero or more white-space]
匹配行应该是正确的顺序
注意:订单不正确
BB BB
other lines
AA AA
没有重复匹配
注意:重复的行匹配
AA AA
AA AA
在'AA AA'和'BB BB'之间的零个或多个行(任何字符串)可以包含
find=$(grep -e "\(^[[:space:]]*AA [[:space:]]*AA[[:space:]]*$\|[[:space:]]*BB [[:space:]]*BB[[:space:]]*\)" myfile.txt | grep -oP '^[[:space:]]*AA[[:space:]]*AA[[:space:]]*\s+[[:space:]]*BB[[:space:]]*BB[[:space:]]*$')
duplicate=$(sort $in_file | uniq -d | (grep "\(^ *AA \+AA *$\|^ *BB \+BB *$\)") )
if [[ -z $duplicate ]] && [[ ! -z $find ]] ; then
echo 'OK'
else
echo 'NOT OK'
fi
上面的脚本工作正常,如果字符串有空格AA[space]AA
但是如果有空格,而AA[space][tab]AA
这样的标签不起作用
问题我不能给{s + grep -oP