grep 출력 "시작" 옵션

grep 출력 "시작" 옵션

grep에서 출력을 가져오는 옵션이 있지만 해당 출력은 내가 검색하는 단어로 시작해야 합니까? 이것은 설명하기가 정말 어렵기 때문에 여기에 예를 들어 보겠습니다.

Cisco 실행 구성에서 무언가를 검색하려면 다음 명령을 사용합니다.

실행 구성 표시 | b 10.0.1.202 - 10.0.1.202가 처음 언급된 위치에서 출력이 바로 시작됩니다.

예를 들어 CentOS에 매우 긴 dhcp.leases 파일이 있는데 어떻게 grep | b 10.0.1.202 10.0.1.202가 처음 발견된 곳에서 출력이 시작되고 나머지 출력이 그 뒤에 나열되도록 하려면 어떻게 해야 합니까?

감사합니다.

답변1

주소에 대해 Grep을 사용하지만 무한한 양의 컨텍스트 줄을 표시합니다( -A"뒤 줄", -B"앞 줄", -C"주변 줄"과 유사하게 사용).

cat dhcp.leases | grep -A9999999 '10\.0\.1\.202'

비록 당신의 경우에는아마전체가 아닌 10~20줄만 원하므로 뒤에 원하는 양을 지정해야 합니다 -A.

나는 일반적으로 특정 범위(예: 정규식 1에서 정규식 2까지)를 자르기 위해 awk를 사용합니다.

cat dhcp.leases | awk '/10\.0\.1\.202/ {found=1} found {print}'
cat dhcp.leases | awk '/10\.0\.1\.202/{f=1}f'

cat somefile | awk '/^Begin:/{ok=1} ok{print} /^End:/{ok=0}'

관련 정보