最初の列に特定の文字が含まれており、最初の列に特定の値より大きい数値を持つ行を選択する必要があります。
特に、「G」を含む最初の列を選択する必要があります。数字より良い50次のように:
入力ファイル:
764M qa11279_TPK0002730_50901083/
762M qa10589_TPK0002730_50796634/
11G qa17805_TPK0001664_51330191/
56G qa15384_TPK0001664_51232746/
140G qa29996_TPK0000949_51951816/
結果ファイル:
56G qa15384_TPK0001664_51232746/
140G qa29996_TPK0000949_51951816/
答え1
解決策awk
:
$ awk -F' ' '$1 ~ /^[0-9]*G/ { sub(/G/, "", $1); if(+$1 > 50) print }' file
56 qa15384_TPK0001664_51232746/
140 qa29996_TPK0000949_51951816/
答え2
例入力に示すように、「G」は最初の列にのみ表示されます。
$ awk '/G/ && ($1+0 > 50)' file
56G qa15384_TPK0001664_51232746/
140G qa29996_TPK0000949_51951816/
ただし、他の地域でもこれが発生する可能性がある場合は、次のようにします。
$ awk '($1 ~ /G/) && ($1+0 > 50)' file
56G qa15384_TPK0001664_51232746/
140G qa29996_TPK0000949_51951816/
答え3
@αГsнιιのコメントに基づいて比較が修正されました。
awk '$1 ~ /^[[:digit:]]+/ && $1 ~ /G$/ && $1+0 > 50' file
56G qa15384_TPK0001664_51232746/
140G qa29996_TPK0000949_51951816/