次の行を使用して単語を見つけて削除する方法

次の行を使用して単語を見つけて削除する方法

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 Intrfce2回印刷されます。

ファイルが次のようになります。

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}'

おすすめ記事