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
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á:
Esto debería darte la salida deseada.