Zeichenkette auslesen und bearbeiten

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Zalon
Beiträge: 52
Registriert: 28.07.2006 20:26:45

Zeichenkette auslesen und bearbeiten

Beitrag von Zalon » 22.09.2006 20:53:46

Hallo Board,

es ist mir ja fast schon peinlich, aber ich habe nach einigen Jahren mit Debian eine absolute Anfängerfrage bezüglich dem Auslesen und Bearbeiten einer Zeichenkette. :oops:

Für meine Firewall lasse ich mittels

Code: Alles auswählen

`cat /etc/resolv.conf | grep '^nameserver' | sed 's/nameserver//'`
die IP-Adressen der Nameserver auslesen. Jetzt erhalte ich mit diesem Aufruf einen Zeichenkette in der Art:
x.x.x.x
y.y.y.y
z.z.z.z
Also die drei IPs der Nameserver (zwei des Internetproviders und eine fürs LAN) durch einen Zeilenumbruch getrennt. Iptables kann mit dieser Angabe natürlich nichts anfangen.

Meine Frage, wie kann ich diesen Output nun auftrennen, dass ich drei Variablen mit jeweils einer IP erhalte? Also
Variable 1: x.x.x.x
Variable 2: y.y.y.y
Variable 3: z.z.z.z

Für Hinweise schonmal vielen Dank!

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 22.09.2006 21:18:27

hallo,

viele Zeilen, aber geht:

Code: Alles auswählen

#!/bin/sh

IP_TEMP=`grep '^nameserver' /etc/resolv.conf | tr -d '\nnameserver'`

VAR1=`echo $IP_TEMP | cut -f 1 -d ' '`
VAR2=`echo $IP_TEMP | cut -f 2 -d ' '`
VAR3=`echo $IP_TEMP | cut -f 3 -d ' '`

echo $VAR1
echo $VAR2
echo $VAR3
Beware of programmers who carry screwdrivers.

Zalon
Beiträge: 52
Registriert: 28.07.2006 20:26:45

Beitrag von Zalon » 22.09.2006 22:17:27

Wow. Vielen Dank!

Ohne Deine Hilfe hätte ich das sowieso nicht hinbekommen.

Woher hast Du Dein Wissen diesbezüglich? Habe heute das Linux-Kompendium für Bash uns Shellprogrammierung angeschaut, aber nichts dazu gefunden. Irgendwie bin ich auf dem Gebiet Bash "Tricks" und Shell-Programme noch ziemlich schwach...

[edit: Post korrigiert]

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 22.09.2006 23:21:30

Zalon hat geschrieben:Wow. Vielen Dank!
garnicht Wow, sed ist viel mehr Wow.
Zalon hat geschrieben:Ohne Deine Hilfe hätte ich das sowieso nicht hinbekommen.
naja, das Debianforum hat 17151 registrierte Benutzer...
und: du hättest es auch alleine hinbekommen!
Zalon hat geschrieben:Woher hast Du Dein Wissen diesbezüglich?
So, bist du neugierig ;) Sowas lernt man so wie Schwimmen - ins Wasser
geworfen zu werden hilft. Und wenn man seit SunOS 4.x damit was zum
Laufen kriegen muss, damit die anderen arbeiten können.

Aber im Ernst (ungefähr in zeitlicher Reihenfolge):
- *Anja über die Schulter schau*
- man
- apropos
- man
- Peter van der Linden: Deep C Secrets
- man
- more /usr/src/linux/Documentation/*
- more /usr/share/doc/*/*
- debianforum.de
- apropos
- man
Beware of programmers who carry screwdrivers.

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 23.09.2006 11:14:14

Hallo Zalon,

mir würde auch noch awk einfallen - als Idee:

Code: Alles auswählen

awk 'NR == 2 {print$2}' /etc/resolv.conf
http://www.linuxfibel.de/kapitel7.htm
http://www.linuxfibel.de/awk.htm
und
http://www.selflinux.org/selflinux/html ... erung.html

Gruß fuzzy

Zalon
Beiträge: 52
Registriert: 28.07.2006 20:26:45

Beitrag von Zalon » 23.09.2006 12:15:45

Das kann ich mir jetzt nicht verkneifen:
cosmac hat geschrieben:
Zalon hat geschrieben:Ohne Deine Hilfe hätte ich das sowieso nicht hinbekommen.
naja, das Debianforum hat 17151 registrierte Benutzer...
Ja und deshalb stehen auch 17151 Antworten hier...
cosmac hat geschrieben: und: du hättest es auch alleine hinbekommen!
Sicher nicht.

Hallo Fuzzy, danke für Deine Antwort, das werde ich mir gleich mal ansehen. Und erst Recht natürlich vielen Dank für die Links, da habe ich dann ja ausreichend Lesestoff.

Schöne Grüße,

Zalon

Benutzeravatar
cui
Beiträge: 89
Registriert: 08.07.2006 12:47:03
Wohnort: @~
Kontaktdaten:

Beitrag von cui » 23.09.2006 12:37:04

Übrigens gibt es auch noch ein hübsches Buch namens Shell-Programmierung.
Ich fands jedenfalls gut. Der Rest kommt dann imo von alleine.
Etch, Kernel 2.6.17-2-686, fluxbox
Searching a cool programming language? Try Ruby!
http://rubyforen.de

Zalon
Beiträge: 52
Registriert: 28.07.2006 20:26:45

Beitrag von Zalon » 23.09.2006 13:37:23

...und früher oder später kommen auch Neueinsteiger um das Thema Shellprogrammierung nicht herum.
Bei mir eher später als früher, :wink: aber das klingt genau nach dem, was ich brauche. Werde ich mir bestellen. Danke für den Tipp!

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 23.09.2006 20:51:44

Zalon hat geschrieben:Ja und deshalb stehen auch 17151 Antworten hier...
Nun, zumindest kommt hier Nummer 3:

Code: Alles auswählen

#!/bin/bash

NS=(`sed -n 's/^nameserver//p' /etc/resolv.conf`)

echo ${NS[0]}
echo ${NS[1]}
echo ${NS[2]}

Antworten