내 질문은 텍스트 처리에 관한 것입니다.
목록에는 다음 형식의 IP 주소와 컴퓨터 이름이 있습니다.
IP address: 192.168.1.25
Computer name: computer7office
IP address: 192.168.1.69
Computer name: computer22office
IP address: 192.168.1.44
Computer name: computer12personal
필요한 출력 :
This computer ip address is xxx.xxx.x.xx and is under the name zzzzzzzzzz
명령 줄을 사용하여 목록에서 출력 파일로 IP와 이름을 자동으로 복사하려면 어떻게해야합니까? 내가 이해하지 못하는 것을 복사 / 붙여 넣기해야하는 것이 아쉽기 때문에 명령을 설명해 주시겠습니까?
에서 sed
목록이라는 파일에 있다고 가정하면 다음을 file
사용할 수 있습니다.
sed -n '/ss: /N;s/\n//;s/IP address:/This computer ip address is/;s/Computer name:/ and is under the name/p' file
-n
우리가 요청할 때까지 아무것도 인쇄하지 마십시오/ss: /
패턴 찾기 ss:
(와 줄을 일치시키기 위해 IP address:
)N
우리가 그들과 합류 할 수 있도록 다음 줄도 읽어보세요 ;
쉘에서와 같이 명령을 분리합니다.s/old/new/
교체 old
로new
s/\n//
두 줄 사이의 개행을 삭제하십시오p
우리가 작업 한 라인을 인쇄원하는 내용이 표시되면 > newfile
끝에 추가하는 명령을 반복 하여 수정 된 파일을newfile
더 읽기 쉽게 :
sed -n '{
/ss: /N
s/\n//
s/IP address:/This computer ip address is/
s/Computer name:/ and is under the name/p
}' file | tee newfile
(에 tee
유용하게 쓰고 newfile
동시에 출력을 표시합니다)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다