Ich habe eine tab-getrennte Datei, in der fehlende Werte durch einen Punkt dargestellt werden. Zum Beispiel:Unix: Alle numerischen Werte einschließlich Nicht-Ganzzahlen erhalten
VAR1 VAR2 VAR3 VAR4
ID1 foo 0.1 0.1
ID2 foo 1 1
ID3 foo foo .
ID4 foo foo foo
ID5 foo . 1
ID6 foo -0.1 -0.1
ID7 foo -1 -1
ID8 foo 5e-08 5e-08
Ich brauche alle Zeilen zu extrahieren, wobei der Wert in der dritten Spalte entweder numerisch (einschließlich nicht-ganze Zahl ist, negative Werte, wissenschaftliche Notation) ist oder fehlt. So sollte meine Ausgabe wie folgt aussehen:
VAR1 VAR2 VAR3 VAR4
ID1 foo 0.1 0.1
ID2 foo 1 1
ID5 foo . 1
ID6 foo -0.1 -0.1
ID7 foo -1 -1
ID8 foo 5e-08 5e-08
Bisher habe ich versucht, dies in awk tun mit awk -F"\t" 'BEGIN{OFS="\t"} ($3 ~ /^[[:alnum:]]+$/) {$1=$1; print}'
aber dann nur ich
VAR1 VAR2 VAR3 VAR4
ID2 foo 1 1
Ich würde auch die Zeilen speichern möchte die nicht übereinstimmen (dh nicht numerisch sind und nicht fehlen) in einer separaten Datei.
Danke, es hat wie ein Zauber funktioniert. Selbst als ich später erkannte, waren einige Werte in wissenschaftlicher Notation – Hill