es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Corte el texto en dos cadenas utilizando un delimitador de cadena – bash.

Quiero cortar una cadena en dos usando otra cadena de delimitación.

 CH  7 ][ Elapsed: 0 s ][ 2021-11-27 12:55

BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID
EE:EE:EE:EE:EE:EE  -82        3        0    0   6  130   WPA2 CCMP   PSK  Tenda
FF:FF:FF:FF:FF:FF  -90        4        0    0   1  130   WPA2 CCMP   PSK  Wifi

BSSID              STATION            PWR   Rate    Lost    Frames  Notes  Probes
EE:EE:EE:EE:EE:EE  AA:AA:AA:AA:AA:AA  -63    0 - 1e     0        3
EE:EE:EE:EE:EE:EE  BB:BB:BB:BB:BB:BB  -74    0 - 1      0        1

Quiero cortar mi texto usando esta cadena de delimitación BSSID STATION PWR Rate Lost Frames Notes Probes. Intenté con awk -F 'BSSID' '{print $1}' file pero corta todas las ocurrencias. Quiero cortar solo la última ocurrencia.

Resultado deseado:

 CH  7 ][ Elapsed: 0 s ][ 2021-11-27 12:55

BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID
EE:EE:EE:EE:EE:EE  -82        3        0    0   6  130   WPA2 CCMP   PSK  Tenda
FF:FF:FF:FF:FF:FF  -90        4        0    0   1  130   WPA2 CCMP   PSK  Wifi
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para cortar solo la última ocurrencia del delimitador, puedes usar el siguiente comando:
    awk '/BSSID STATION PWR Rate Lost Frames Notes Probes/ {found=1} found==0{print} found==1{exit}' archivo

    Este comando busca la última ocurrencia del delimitador e imprime todo antes de él. Cuando se encuentra el delimitador, se establece una bandera y el script sale después de imprimir la última ocurrencia. La salida será:

     CH  7 ][ Elapsed: 0 s ][ 2021-11-27 12:55
    
     BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID
    
     EE:EE:EE:EE:EE:EE  -82        3        0    0   6  130   WPA2 CCMP   PSK  Tenda
     FF:FF:FF:FF:FF:FF  -90        4        0    0   1  130   WPA2 CCMP   PSK  Wifi
    

    Esto debería darte la salida deseada.

Comments are closed.