구조에 특정 문자열이 포함된 경우 파일에서 특정 세트나 구조를 선택하는 방법은 무엇입니까?

구조에 특정 문자열이 포함된 경우 파일에서 특정 세트나 구조를 선택하는 방법은 무엇입니까?

특정 문자열이 포함된 컬렉션을 추출하고 싶습니다. 예를 들면 다음과 같습니다.

파일 abc.txt에 다음이 포함됨

abc 123
abcd 1234
abcde 12345

abc 123
abcd 123
abcde 12345

abc 123
abcd 1234
abcde 12345

이제 위 세트에서 두 번째 세트의 두 번째 행에 가 없음을 알 수 있습니다 1234. 그래서 제가 추출하고 싶은 것은 그러한 문자열을 가지고 있는 컬렉션입니다.

abc 123
abcd 123
abcde 12345

답변1

> awk -v RS=$'\n\n' -v FS=$'\n' -v ORS=$'\n\n' '$2 ~ /123$/ {print}' abc.txt
abc 123
abcd 123
abcde 12345

답변2

GNU의 표준 프로그램이다.sed

sed '/abc 123/{:1;$!{N;/\n$/!b1}};/\babcd 123\b/d' abc.txt

또는

sed '/^$/!{:1;$!{N;/\n$/!b1}};/\babcd 123\b/d' abc.txt

abc 123블록의 첫 번째 줄이 아닌 빈 줄을 대상으로 하는 경우 ( )

관련 정보