J'ai un fichier délimité par des tabulations où les valeurs manquantes sont représentées par un point. Par exemple:unix: obtient toutes les valeurs numériques, y compris les non-entiers
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
Je dois extraire toutes les lignes où la valeur dans la troisième colonne est numérique (y compris les non-entier, des valeurs négatives, la notation scientifique) ou manquant. Donc, ma sortie devrait ressembler à ceci:
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
Jusqu'à présent, j'ai essayé de faire cela en utilisant awk awk -F"\t" 'BEGIN{OFS="\t"} ($3 ~ /^[[:alnum:]]+$/) {$1=$1; print}'
mais je n'obtenir
VAR1 VAR2 VAR3 VAR4
ID2 foo 1 1
Je voudrais aussi enregistrer les lignes qui ne correspondent pas (c'est-à-dire non numériques et non manquantes) dans un fichier séparé.
Merci, ça a marché comme un charme. Même quand je me suis rendu compte plus tard certaines valeurs étaient en notation scientifique – Hill