2017-11-20 1 views
0

Ich habe eine Variable Firstline mit Wert FHEAD,0000000001,STKU,20150927000000,201509270000000000,1153,,0000000801,W, von dem ich 5th Feld allein brauche.N-te Spalte aus einer Variablen extrahieren

Kann mir jemand helfen, dies zu lösen.

Ich habe den unten Befehl verwendet, aber es gibt mir einen Fehler

echo "FHEAD,0000000001,STKU,20150927000000,201509270000000000,1153,,0000000801,W" | awk -f ',' '{print $5}'

awk: fatal: can't open source file ,' for reading (No such file or directory)

+2

keine awk Kerl, aber es sieht aus wie -f eine Eingabedatei angeben ist. Sieht so aus, als müssten Sie die Dokumentation lesen. –

+1

willst du '-F,' nicht '-f'. Viel Glück. – shellter

Antwort

1

Versuchen -F nicht -f.

-F ist für die Feldtrennzeichen

-f für die Dateinamen des awk Programms.

2

Wie Sie es als bash markieren und nicht awk (die auch eine gültige Lösung ist), können Sie tun

IFS=, read -a a <<< "FHEAD,0000000001,STKU,20150927000000,201509270000000000,1153,,0000000801,W" 
echo ${a[4]} 

das gleiche Ergebnis zu erhalten, ohne einen neuen Prozess Laichen (beachten Sie, dass bash-Arrays 0- sind basierend).

0

können Sie sed verwenden zu

echo "..." | sed -E 's/([^,]*,){4}([^,]*).*/\2/' 
Verwandte Themen