Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Gute Tutorials / Beispiele zu sed und awk gesucht (https://www.delphipraxis.net/157142-gute-tutorials-beispiele-zu-sed-und-awk-gesucht.html)

Phoenix 4. Jan 2011 08:59

AW: Gute Tutorials / Beispiele zu sed und awk gesucht
 
Das alte sed hat aber wie gesagt zumindest bei mir nicht die gewünschte Ausgabe :)

Assarbad 4. Jan 2011 10:08

AW: Gute Tutorials / Beispiele zu sed und awk gesucht
 
Aaah, gerade auf unserem Mac mini geschaut. Handelt sich also um BSD sed.

Versuch mal:

Code:
sed -E -e '/Device:/!d; s/^\(Hardware Port: *(.*), *Device: *(.*)\)$/\2:\1/'
Bei mir ergibt das:
Code:
Bluetooth-Modem:Bluetooth DUN
en3:USB-Ethernet
en0:AirPort
en2:iPhone-USB
en1:Bluetooth PAN
... welches man durch sort und dann durch ein while read jagen kann ...

Phoenix 4. Jan 2011 10:58

AW: Gute Tutorials / Beispiele zu sed und awk gesucht
 
Dann schau ich mal dass ich das nachher in der Mittagspause zusammenpfriemel. Diese Regex da versteh ich schon längen besser als die davor *g* :)

Hervorragend, so tut's jetzt :)
Code:
#!/usr/bin/env bash
echo "Network information:"
echo "===================="
LISTSERVICES="networksetup -listnetworkserviceorder"
AIRPORTI="airport -I"

# Ermitteln ob WLAN aktiv
WLANACTIVE=1
($AIRPORTI|grep -q 'AirPort: Off') && WLANACTIVE=0

# Entsprechend 'schöne' Ausgaben erzeugen
if (( WLANACTIVE )); then
        while read line; do
          case "$line" in
             agrCtlRSSI:*)
            QUALITY=${line##*: }
               ;;
             lastTxRate:*)
            SPEED=${line##*: }
               ;;
             SSID:*)
            SSID=${line##*: }
            
               ;;
         channel:*)
            CHANNEL=${line##*: }
         ;;    
             *)
               ;;
          esac
    done < <($AIRPORTI)

   if [ "$SSID" = "SSID:" ]; then
      echo "WIFI:       enabled (not connected)"
   else
      echo "WIFI:       enabled"
      echo "Network:    $SSID"
      echo "Speed:      $SPEED Mbit/s"
          echo "Quality:    $QUALITY dB"
   fi
else
   echo "WIFI:       disabled"
fi

# make some lines
echo

# Geräte ermitteln
#             ... unnötige Teile herausschneiden.

while read device; do
   #empty line / placeholder
   echo
   IFACE=${device%%:*}
   NAME=${device##*:}

   case "$IFACE" in
        en*)
             echo "Interface: $NAME"
         echo "========================"
         ifconfig $IFACE
             # TODO: hier muß erweitert werden
          ;;
      Bluetooth-Modem*)
         #echo $NAME
      ;;
        *)
          ;;
     esac
done < <($LISTSERVICES|sed -E -e '/Device:/!d; s/^\(Hardware Port: *(.*), *Device: *(.*)\)$/\2:\1/'|sort)
Die Ausgabe bisher:
Code:
smartair:Scripte Sebastian$ ./networkinfo.sh
Network information:
====================
WIFI:       enabled
Network:    SH_SECURED_1OG
Speed:      54 Mbit/s
Quality:    -61 dB



Interface: AirPort
========================
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   ether 10:93:e9:00:ca:1a
   inet6 fe80::1293:e9ff:fe00:ca1a%en0 prefixlen 64 scopeid 0x4 
   inet 192.168.2.120 netmask 0xffffff00 broadcast 192.168.2.255
   media: autoselect
   status: active

Interface: Bluetooth PAN
========================
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   ether 10:93:e9:00:ca:1b
   media: autoselect
   status: inactive

Interface: iPhone-USB
========================
ifconfig: interface en2 does not exist

Interface: USB-Ethernet
========================
ifconfig: interface en3 does not exist
smartair:Scripte Sebastian$

Assarbad 6. Jan 2011 19:19

AW: Gute Tutorials / Beispiele zu sed und awk gesucht
 
Cool. Wird dann noch was gebraucht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz