나는이 질문을 알고있다 How to find patterns across multiple lines using grep? 그러나 나는 나의 문제가 더 복잡하다고 생각한다. 그래서 도움이 필요해. 여러 줄 패턴 일치를 찾는 방법 (처음으로 일치해야 함)?
나는boundary
{
inlet
{
type fixedValue;
value uniform (5 0 0);
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
....
}
내가 그렇게 inlet
경계 조건 fixedValue
를 출력하는 스크립트를 쓰고 같은 사전 파일 BCFile
하고 outlet
경계 조건 inletOutlet
있습니다.
cat BCFile | grep "type" | awk '{printf $2}' | tr -d ";"
을 사용하면 키워드 type
이 여러 번 발생하므로 작동하지 않습니다.
awk -v RS='}' '/inlet/ { print $4 }' BCFile
을 사용하면 키워드도 inlet
이 여러 번 발생하기 때문에 작동하지 않습니다.
은 내가 먼저 키워드 inlet
를 검색 한 후 가장 가까운 {
및 }
검색 패턴을 찾을 수있는 방법이 필요합니다.
누구나 스마트하게 수행하는 방법을 알고 있습니까?
'플래그'변수가있는 awk 솔루션을 찾으십시오. 매주 여기에 여러 명이 나타납니다. 즉. '/ type/{t = 1};/value/{v = 1}; {t && v} 'file' (정확하게 맞지 않아서 코멘트로 올릴 수도 있습니다). 행운을 빕니다. – shellter