Ich will beim Aufruf meines Scripts in der Kommandozeile einen Wert übergeben und denselbigen dann in einer Variable im awk weiter verwenden. Hat wer eine Idee wie das gehen könnte?
Ich will beim Aufruf meines Scripts in der Kommandozeile einen Wert übergeben und denselbigen dann in einer Variable im awk weiter verwenden. Hat wer eine Idee wie das gehen könnte?
Konnte dort zwar was über den awk finden, aber nicht, wie ich auf die Kommandozeilenparameter von der Shell im awk zugreifen kann...
user@sonne> ./fakultaet.sh 5
declare -i zahl=$1
nur mal so rauskopiert...
sagt mir: declare: not found
es kommt hier auf das $1 an!
# test.sh huhu
echo $1
....
z.b. sodamit wird der 1. parameter der an das shell script übergeben wird an die awk variable WERT überwiesenCode:awk -v WERT=$1 'BEGIN {print sqrt(WERT)}'
religion is a virus from outer space
meine Zeile sieht jetzt so aus, erzeugt allerdings einen Syntax-error in Zeile 1:
@drcux: es ging nicht darum einen parameter ins shellscript zu kriegen sondern in den awk.Code:awk -v WERT=$2 ' { if( (NR % WERT) == 1) print NR, $0 else print " ", $0}' testfile
also bei mir gehts so. wie rufst du denn das script auf?Zitat von dein6Sinn
religion is a virus from outer space
mit:wobei das -n nichts mit dem awk selbst zu tun hat, und der 3er wär dann $2.Code:file -n 3
dir ist aber schon klar dass file ein shell command ist
religion is a virus from outer space
Jaja, is eh auch in $PATH eingetragen usw. Er führts ja auch aus, bis auf die Syntax-error halt.
ich glaub du verstehst mich nicht. dein script heisst "file", aber es gibt bereits ein linux command namens file und ich bin mir nicht sicher, ob da dein script aufgerufen wird, wenn du file eintippst oder das andere file command.
also nochmal, wie schaut dein script genau aus? wie rufst du's auf? und welche fehlermeldung kommt genau?
religion is a virus from outer space
achso. das script heißt nicht file. habs nur allgemein geschrieben wie ich das aufruf.
Aufruf erfolgt mit:Script:Code:ue6_2_2 -n 3testfile ist einfach ein file mit ein paar Zeilen drinCode:if [ $# -eq 2 ] then awk -v WERT=$2 ' {if( (NR % WERT) == 1) print NR,$0 else print " ", $0}' testfile fi
wenn ich das script so bei mir ausführe dann klappt das wunderbar. welche shell verwendest du denn? und wie schaut die fehlermeldung genau aus?
religion is a virus from outer space
Lesezeichen