줄 바꿈을 사용하여 grep 구성

줄 바꿈을 사용하여 grep 구성

egrep 사이에 줄 바꿈을 어떻게 추가할 수 있나요?

# nmap -sP 192.168.1.0/24 | egrep 'MAC|report'

두 줄 각각 뒤에 줄바꿈을 추가하고 싶습니다. 가장 효율적인 속기는 무엇입니까?

기본적으로 결과가 다음과 같이 출력되기를 원합니다.

Nmap scan report for 192.168.1.7
MAC Address: C4:42:02:xx:xx:xx (Samsung Electronics Co.)

Nmap scan report for 192.168.1.8
MAC Address: 04:F1:3E:xx:xx:xx (Apple)

Nmap scan report for 192.168.1.10
MAC Address: 70:18:8B:xx:xx:xx (Hon Hai Precision Ind. Co.)

답변1

두 줄 각각 뒤에 줄바꿈을 추가하고 싶습니다.

이 문자 그대로의 문제에 대한 해결책은여기. 귀하의 경우:

nmap -sP 192.168.1.0/24 | egrep 'MAC|report' | sed '0~2 s/$/\n/g'

nmap그러나 일부 보고서에서 해당 행이 누락되는 출력을 보았 MAC으므로 (맹목적으로 행을 계산하는 대신) Nmap첫 번째 행에 있지 않는 한 모든 앞에 개행 문자를 사용하는 것이 좋습니다.

nmap -sP 192.168.1.0/24 | egrep 'MAC|report' | sed '1! s/^Nmap/\nNmap/'

답변2

나는 생각해 냈다

nmap -sP 192.168.10/24 | egrep 'MAC|report|Host is up' | sed  '/Host is/c\\r'

추가 문자열 "Host is up"을 검색한 다음 캐리지 리턴으로 바꿉니다.

결과는 다음과 같습니다.

Nmap scan report for 192.168.1.1

MAC Address: 00:0E:C6:C7:93:38 (Asix Electronics)
Nmap scan report for  (192.168.1.254)

MAC Address: 1C:C1:DE:80:53:55 (Hewlett Packard)
Nmap scan report for 192.168.1.250

관련 정보