awk + 첫 번째 호스트 이름 다음에 두 번째 문자열(IP)을 모두 인쇄하는 방법

awk + 첫 번째 호스트 이름 다음에 두 번째 문자열(IP)을 모두 인쇄하는 방법

IP 주소가 호스트 이름 뒤에 오도록 다음(API의 출력)을 어떻게 인쇄합니까?

kafka02.ur.com
102.16.235.69
master01.ur.com
102.16.235.61
master02.ur.com
102.16.235.62

kafka02.ur.com     102.16.235.69
master01.ur.com    102.16.235.61
master02.ur.com    102.16.235.62

답변1

사용 sed:

sed -e 'N;s/\n/\t/' in.txt

하나의 탭으로 두 줄을 모두 결합하세요.

답변2

$ paste - - <file
kafka02.ur.com  102.16.235.69
master01.ur.com 102.16.235.61
master02.ur.com 102.16.235.62

paste명령을 함께 사용하면 - -표준 입력에서 읽고 file두 개의 출력 열에 들어오는 라인(으로부터)을 배포합니다.

구분 기호는 탭이지만 options 를 통해 변경할 수 있습니다 -d.

(요청 시 awk):

$ awk '{ printf("%s\t", $0) } { getline } { print }' file

답변3

그리고 awk:

awk '{getline x; printf("%s\t%s\n", $0, x)}' file.txt
  • getline x다음 레코드를 가져와 변수로 저장x

  • printf("%s %s\n", $0, x)원하는 형식으로 기록 인쇄


예:

% cat file.txt
kafka02.ur.com
102.16.235.69
master01.ur.com
102.16.235.61
master02.ur.com
102.16.235.62

% awk '{getline x; printf("%s\t%s\n", $0, x)}' file.txt
kafka02.ur.com  102.16.235.69
master01.ur.com 102.16.235.61
master02.ur.com 102.16.235.62

관련 정보