J'ai un fichier comme celui-ci :
ID A56
DS /A56
DS AGE 56
Et je voudrais imprimer toute la ligne uniquement si la deuxième colonne commence par une majuscule.
Sortie attendue :
ID A56
DS AGE 56
Ce que j'ai essayé jusqu'à présent :awk '$2 ~ /[A-Z]/ {print $0}' file
Imprime tout :les majuscules se trouvent dans la deuxième colonne.
awk '$2 /[A-Z]/' file
Obtient une erreur de syntaxe.
Réponse acceptée :
Vous pouvez utiliser awk
comme suggéré par @cuonglm, ou
-
grep GNU
grep -P '^[^s]+s+[A-Z]' file
-
Perle
perl -lane 'print if $F[1]=~/^[A-Z]/' file
-
GNU sed
sed -rn '/^[^s]+s+[A-Z]/p' file
-
shell (suppose une version récente de ksh93, zsh ou bash)
while read -r a b; do [[ $b =~ ^[A-Z] ]] && printf "%s %sn" "$a" "$b"; done < file