GELÖST: Spaltenwert mit cut selektieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Kaheto
Beiträge: 126
Registriert: 08.06.2016 22:28:50

GELÖST: Spaltenwert mit cut selektieren

Beitrag von Kaheto » 08.04.2017 10:37:01

Hallo,

ich suche die richtge Syntax für den Befehl 'cut'. Aus dieser Information

Code: Alles auswählen

asterisk -rx "pjsip show registrations"

 <Registration/ServerURI..............................>  <Auth..........>  <Status.......>
==========================================================================================

telekom_02113698744/sip:tel.t-online.de                 telekom_02113698744_auth  Registered      
telekom_02113698712/sip:tel.t-online.de                 telekom_02113698712_auth  Registered      
telekom_02113698714/sip:tel.t-online.de                 telekom_02113698714_auth  Registered
interessiert mich der Wert aus der Spalte "Status", ob dort "Registered" oder "Reject" enthalten ist, für eine Weiterverarbeitung.

Das versuche ich mit cut und folgender Syntax zu ermitteln. Bisher noch unzufriedenstellend.

Code: Alles auswählen

asterisk -rx "pjsip show registrations" | sed '1,4d' | cut -d\: -f2
tel.t-online.de                 telekom_02113698744_auth  Registered      
tel.t-online.de                 telekom_02113698712_auth  Registered      
tel.t-online.de                 telekom_02113698714_auth  Registered
Sieht alles nach dem Delimiter ";" als eine Spalte.

Code: Alles auswählen

asterisk -rx "pjsip show registrations" | sed '1,4d' | cut -d\:  -f1
telekom_02113698744      
telekom_02113698712    
telekom_02113698714

Code: Alles auswählen

asterisk -rx "pjsip show registrations" | sed '1,4d' | cut -d\  -f3


Wie komme ich an die letzte Spalte heran?

Grüße

Kaheto
Zuletzt geändert von Kaheto am 08.04.2017 11:13:48, insgesamt 1-mal geändert.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Spaltenwert mit cut selektieren

Beitrag von eggy » 08.04.2017 10:59:22

Schau dir mal -b an, zb

Code: Alles auswählen

cut -b 82-
ich würd bei sowas aber eher auf awk zurückgreifen,

Code: Alles auswählen

 awk '/auth/{print $1 " " $3}'  datei.txt 

Kaheto
Beiträge: 126
Registriert: 08.06.2016 22:28:50

Re: Spaltenwert mit cut selektieren

Beitrag von Kaheto » 08.04.2017 11:13:30

Okay die Option "-b" ("-b, --bytes=LIST select only these bytes") kannte ich so nicht. Hätte ich aufgrund der Manpage jetzt auch nicht angewendet. Liefert aber

Code: Alles auswählen

asterisk -rx "pjsip show registrations" | sed '1,4d' | cut -b 82-
  Registered      
  Registered      
  Registered
Besser finde ich Awk. Den hatte ich bloß total ausserhalb meines Monitors:

Code: Alles auswählen

asterisk -rx "pjsip show registrations" | sed '1,4d' | awk '/auth/{print $3}'
Registered
Registered
Registered
Vielen Dank für die zwei Tips
Kaheto

Benutzeravatar
detix
Beiträge: 1699
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: GELÖST: Spaltenwert mit cut selektieren

Beitrag von detix » 08.04.2017 12:59:35

Der sed Befehl muss nicht unbedingt sein, awk kann das auch:

Code: Alles auswählen

awk '(NR>4 && /auth/) {print $3}'
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Antworten