私はこのようなファイルを持っています:
ID A56
DS /A56
DS AGE 56
また、2番目の列が大文字で始まる場合にのみ行全体を印刷したいと思います。
期待される出力:
ID A56
DS AGE 56
これまでに試したこと:
awk '$2 ~ /[A-Z]/ {print $0}' file
すべてを印刷します。大文字は2番目の列にあります。
awk '$2 /[A-Z]/' file
構文エラーを取得します。
承認された回答:
awk
を使用できます @cuonglmが提案したように、または
-
GNU grep
grep -P '^[^s]+s+[A-Z]' file
-
Perl
perl -lane 'print if $F[1]=~/^[A-Z]/' file
-
GNU sed
sed -rn '/^[^s]+s+[A-Z]/p' file
-
シェル(ksh93、zsh、またはbashの最新バージョンを想定)
while read -r a b; do [[ $b =~ ^[A-Z] ]] && printf "%s %sn" "$a" "$b"; done < file