In '5p' die Zahl mit einer Varriable ersetzen...

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ManfredG
Beiträge: 112
Registriert: 12.08.2004 17:38:14

In '5p' die Zahl mit einer Varriable ersetzen...

Beitrag von ManfredG » 12.08.2004 20:01:39

Hallo,
ich habe so etwas in meinem Script:

VARIABLE=`cat datei | sed -n '7p' `

Jetzt möchte ich gerne die Zahl 5 mit der Varriable $ZAHL ersetzen.

VARIABLE=`cat datei | sed -n '$ZAHLp' `

funktioniert natürlich nicht.

Wie muß denn das genau heißen?

Danke und liebe Grüße
Manfred

Benutzeravatar
riankrimsteel
Beiträge: 131
Registriert: 23.03.2003 19:06:06
Wohnort: Göttingen
Kontaktdaten:

Re: In '5p' die Zahl mit einer Varriable ersetzen...

Beitrag von riankrimsteel » 12.08.2004 20:09:11

Hi,

versuch mal

Code: Alles auswählen

VARIABLE=`cat datei | sed -n '${ZAHL}p' `
Ohne die Klammern wird das von der Shell falsch behandelt.

Gruss
Dennis
For every problem, there is a solution that's simple, easy, and wrong.

ManfredG
Beiträge: 112
Registriert: 12.08.2004 17:38:14

Beitrag von ManfredG » 12.08.2004 20:34:19

Hallo Dennis,
danke für deine Hilfe.

Ich bekomme da jetzt aber diesen ERROR:

sed: -e expression #1, char 3: Unknown command: `Z'

Hast Du eine Ahnung warumm das nicht geht?

Liebe Grüße
Manfred

Benutzeravatar
riankrimsteel
Beiträge: 131
Registriert: 23.03.2003 19:06:06
Wohnort: Göttingen
Kontaktdaten:

Beitrag von riankrimsteel » 12.08.2004 21:59:52

Ups Sorry,
kleiner Syntax Fehler.
Korrekt heisst es entweder

Code: Alles auswählen

VARIABLE=$(cat datei | sed -n ${ZAHL}p)
oder

Code: Alles auswählen

VARIABLE=`cat datei | sed -n ${ZAHL}p`
Beim setzen von Anführungsstriche, Backticks und Klammern muss man halt doch mehr aufpassen :oops:

Gruss
Dennis
For every problem, there is a solution that's simple, easy, and wrong.

ManfredG
Beiträge: 112
Registriert: 12.08.2004 17:38:14

Beitrag von ManfredG » 12.08.2004 22:36:10

Dallo Dennis,
herzlichen Dank, Du bist ein Genie (;-))

Diese Zeile hat geholfen:
VARIABLE=$(cat datei | sed -n ${ZAHL}p)

Liebe Grüße
Manfred

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.08.2004 22:58:29

hi.. nur so als Tip.. das wird nur funktionieren wenn du so etwas einfaches machst mit SED... wenn du einen komplexeren Ausdruck machen willst (z.B. suchen/ersetzen) geht das so nicht mehtr..

aber es geht wie folgt (an irgendeinem x-beliebigen Beispiel):

ich such "hallo" und wills in "hi" ersetzt haben

Code: Alles auswählen

VAR="hi"
cat DATEI | sed -e 's/hallo/'$VAR'/'
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Antworten