다음과 같은 파일이 있습니다.
ID A56
DS /A56
DS AGE 56
두 번째 열이 대문자로 시작하는 경우에만 전체 행을 인쇄하고 싶습니다.
예상 출력:
ID A56
DS AGE 56
지금까지 시도한 것:
awk '$2 ~ /[A-Z]/ {print $0}' file
모든 것을 인쇄하십시오: 두 번째 열에서 대문자를 찾으십시오.
awk '$2 /[A-Z]/' file
구문 오류가 수신되었습니다.
답변1
^
문자열의 시작을 나타내려면 정규식을 사용해야 합니다 .
$ awk '$2 ~ /^[[:upper:]]/' file
ID A56
DS AGE 56
답변2
@cuonglm 제안대로 사용할 수 있습니다 awk
. 또는
GNU grep
grep -P '^[^\s]+\s+[A-Z]' file
진주
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 %s\n" "$a" "$b"; done < file