Imprimer les lignes si la colonne donnée commence par une lettre majuscule

J'ai un file comme celui-ci:

ID A56 DS /A56 DS AGE 56 

Et j'aimerais imprimer la ligne entière seulement si la deuxième colonne commence par une majuscule.

Production attendue:

 ID A56 DS AGE 56 

Ce que j'ai essayé jusqu'à présent:
awk '$2 ~ /[AZ]/ {print $0}' file
Tout imprime: les majuscules se trouvent dans la deuxième colonne.

awk '$2 /[AZ]/' file
Obtient une erreur de syntaxe.

Vous pouvez utiliser awk comme @cuonglm suggéré, ou

  1. GNU grep

     grep -P '^[^\s]+\s+[AZ]' file 
  2. Perl

     perl -lane 'print if $F[1]=~/^[AZ]/' file 
  3. GNU sed

     sed -rn '/^[^\s]+\s+[AZ]/p' file 
  4. shell (suppose une version récente de ksh93, zsh ou bash)

     while read -rab; do [[ $b =~ ^[AZ] ]] && printf "%s %s\n" "$a" "$b"; done < file 

Vous devez utiliser regex ^ pour indiquer le début de la string:

 $ awk '$2 ~ /^[[:upper:]]/' file ID A56 DS AGE 56