Der Befehl „awk“ wurde auf dem Ubuntu-Desktop nicht gefunden, funktioniert aber gut unter Centos

Der Befehl „awk“ wurde auf dem Ubuntu-Desktop nicht gefunden, funktioniert aber gut unter Centos

Ich erstelle test.sh, um eine Datei mit Inhalt zu lesen

item1:return1
item2:return2
...
item10:return10

test.sh-Inhalt

VAR1=$1
VAR2= `grep "^${VAR1}:" /home/path/file | awk '{print $2;}'`

echo "${VAR2}";

Lauftest

sh test.sh item1

zurückkehren

: not found test.sh: 
: not found test.sh: 

Wenn ich dasselbe auf Centos ausführe. return

return1

Was ist falsch am awk-Befehl?

Antwort1

Mit dem awk-Befehl ist alles in Ordnung. Ihr Problem kann test.shnicht gefunden werden, wie die Meldung zeigt. CentOS setzt Ihren Pfad wahrscheinlich auf die Variable PATH.

Führen Sie es wie folgt aus sh ./test.sh item1(ich gehe davon aus, dass sich test.sh in Ihrem aktuellen Verzeichnis befindet)

Bearbeiten: Ich hätte dem Skript besser Aufmerksamkeit schenken sollen, :das Problem liegt bei grep. Dies funktioniert

VAR1=$1
VAR2=`grep "${VAR1}\:" file | awk '{print $2}'`
echo "${VAR2}";

Da awk standardmäßig kein :Trennzeichen erkennt, musste ich

item1: return1
item2: return2

Ich habe keine Ahnung, wie es ohne diese Änderung auf Server oder CentOS funktionieren könnte

verwandte Informationen