다음 줄을 사용하여 단어를 찾고 삭제하는 방법

다음 줄을 사용하여 단어를 찾고 삭제하는 방법

awk나는 스위치에 대한 정보가 포함된 텍스트 파일을 편집하기 위해 스크립트 를 사용해 왔으며 Expect지금까지 텍스트 파일은 다음과 같습니다.

Device ID Local Intrfce 
  BIOTERIO Gig 1/0/6 
  N7K-LAN(JAF1651ANDL) Gig 1/0/1 134 
  LAB_PESADO Gig 1/0/11 
  Arquitectura_Salones Gig 1/0/9 129 
  CIVIL_253 Gig 1/0/4 
  Arquitectura Gig 1/0/3 
  ING_CIVIL_DIR Gig 1/0/10 
  ING_CIVIL Gig 1/0/7 
  Ingenieria_Posgrado --More-- 
  Device ID Local Intrfce 
  Gig 1/0/8 134 
  Biblio_Barragan Gig 1/0/2 
  Electronica_Edif_3 Gig 1/0/5 127 
  Barragan_3750>exit Connection closed by foreign host. 
  ]0;cesar@cesar-HP-Pavilion-15-Note 

스크립트는 여러 줄의 출력을 처리하므로 레이블은 --More--텍스트 파일에 인쇄되고 열 이름은 Device ID Local Intrfce두 번 인쇄됩니다.

파일이 다음과 같기를 원합니다.

Device ID Local Intrfce 
  BIOTERIO Gig 1/0/6 
  N7K-LAN(JAF1651ANDL) Gig 1/0/1 134 
  LAB_PESADO Gig 1/0/11 
  Arquitectura_Salones Gig 1/0/9 129 
  CIVIL_253 Gig 1/0/4 
  Arquitectura Gig 1/0/3 
  ING_CIVIL_DIR Gig 1/0/10 
  ING_CIVIL Gig 1/0/7 
  Ingenieria_Posgrado Gig 1/0/8 134 
  Biblio_Barragan Gig 1/0/2 
  Electronica_Edif_3 Gig 1/0/5 127 
  Barragan_3750>exit Connection closed by foreign host. 
  ]0;cesar@cesar-HP-Pavilion-15-Note 

특정 단어를 찾는 방법을 알고 있지만 터미널 길이에 따라 어떤 열에나 있을 수 있습니다.

요약하자면 --More--라는 단어를 찾아 다음 줄을 사용하여 제거하고 싶습니다.

도움이 필요하세요?

감사해요.

고쳐 쓰다:

이것이 작업을 수행합니다. sed '/--More--/{N;N; s/--More--.*\n[ \t]*//}' 예상 스크립트에서 구문은 다음과 같습니다.

send -- "sed '/--More--/{N;N; s/--More--.*\\n\[ \\t\]*//}' TablaCDP.dat > CDPyPuerto.dat \r"

답변1

그리고 sed:

sed '/--More--/{s///;n;d;}'

동등한 awk:

awk 'sub(/--More--/, "") {print; getline; next}; {print}'

답변2

Perl은 또한 다음을 수행할 수 있습니다:

$ perl -pe '$_ = "" if($. > 1 and $_ =~ /Device ID Local Intrfce/); $_ =~ s/--More--//;'  input.txt   
Device ID Local Intrfce 
  BIOTERIO Gig 1/0/6 
  N7K-LAN(JAF1651ANDL) Gig 1/0/1 134 
  LAB_PESADO Gig 1/0/11 
  Arquitectura_Salones Gig 1/0/9 129 
  CIVIL_253 Gig 1/0/4 
  Arquitectura Gig 1/0/3 
  ING_CIVIL_DIR Gig 1/0/10 
  ING_CIVIL Gig 1/0/7 
  Ingenieria_Posgrado  
  Gig 1/0/8 134 
  Biblio_Barragan Gig 1/0/2 
  Electronica_Edif_3 Gig 1/0/5 127 
  Barragan_3750>exit Connection closed by foreign host. 
  ]0;cesar@cesar-HP-Pavilion-15-Note 

관련 정보