100줄이 포함된 파일을 읽고 패턴을 찾는 bash 스크립트를 작성하고 싶습니다. 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"}'