我希望编写一个 bash 脚本,该脚本将读取包含 100 行的文件并查找模式def <space>
,如果在该行中找到该模式,它将检查下一行以查看该模式是否'''
存在于下一行中。如果是,则检查'''
5 行之外是否遇到下一个。如果所有这些都是“是”,则回显 TRUE,否则回显 FALSE。
例如文件1:
line 1
line2
...
def something...
'''
random text
rand..text
rand..
ra..
'''
回声正确
文件2:
line 1
line 2
...
def something..
int a
...
回声错误
文件中可以有多个此类def <space>
模式,如果其中任何一个未通过测试,则总体结果为 FALSE。
我该如何使用awk
, grep
, 或 来做到这一点sed
?
答案1
尝试一下,将解释这是否是您正在寻找的。
grep -A5 "def " file.txt | grep -n "'''" | awk -F ':' '{print $1}' | tr '\n' ' ' | awk '{if ($1 == "2" && $2 == "" ) print "TRUE";else print "FALSE"}'