여러 줄 파일에서 특정 텍스트를 복사하여 터미널을 사용하여 자동으로 다른 파일에 붙여 넣습니다.

Never.too.old.to.learn

내 질문은 텍스트 처리에 관한 것입니다.

목록에는 다음 형식의 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와 이름을 자동으로 복사하려면 어떻게해야합니까? 내가 이해하지 못하는 것을 복사 / 붙여 넣기해야하는 것이 아쉽기 때문에 명령을 설명해 주시겠습니까?

Zanna

에서 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/교체 oldnew
  • 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관