• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]Shell-Script Variable an awk übergeben?

hambam

Newbie
Hallo,

ich habe mir ein kleines awk-Script gebastelt, dass in einer Datei in einer bestimmten Spalte nach bestimmten Einträgen sucht.
Code:
sudo cat /scripts/test/test.txt | awk '{if ($1 == "hallo") print $3}'

Jetzt würde ich das gerne in ein Shell-Script packen, in der ich den Suchbegriff als Parameter übergeben kann.
Aber wie mache ich das, wo doch das Shell-Script in $1 den übergebenen Parameter enthält, sowie $1 auch den Wert der ersten Spalte der test.txt

Folgender Code funktioniert leider nicht:
Code:
#! /bin/sh

if test $# -eq 0
then
  echo "usage: suche suchbegriff" >&2
else
  var1="$1"
  sudo cat /scripts/test/test.txt | awk '{if ($1 == "variable=${var1}") print $3}' 
fi
 

framp

Moderator
Teammitglied
Code:
awk -v parm="xyz" '{if ($1 == parm) print $3}'
Mit -v kann man Parameter in awk reingeben ;)

Oder aber mit
Code:
awk '{if ($1 == "'$shellVar'") print $3}'
Ist aber nicht so elegant.
 
OP
H

hambam

Newbie
Vielen Dank, nun klappt mein Script:

Code:
#! /bin/sh

if test $# -eq 0
then
  echo "usage: suche suchbegriff" >&2
else
  sudo cat /scripts/test/test.txt | awk -v parm= "$1" '{if ($1 == parm) print $3}'
fi
 
Oben