파일의 첫 번째 열에 있는 대문자 단어를 인쇄합니다.

파일의 첫 번째 열에 있는 대문자 단어를 인쇄합니다.

내 출력을 원합니다.

VDD.
GND
AGNDSUB 
VMEASPOS.
VMEASNEG
VREFEXT 

File1에는 다음 정보가 있습니다.

Power and signal 
VDD Digital Power This pin provides power supply connection for the digital
blocks.
GND Digital Ground This pin provides ground connection for the digital blocks.
AGNDSUB Ground This pin provides substrate connection.
VMEASPOS Digital Power Voltage to be measured.
VMEASNEG Ground Ground for the voltage to be measured.
VREFEXT Digital Power Reference voltage input of 1.024V %for VSENS calibration.
operating voltage

답변1

그리고 Gnu grep:

grep -Eow '^[[:upper:]]+' file

답변2

당신은 그것을 사용할 수 있습니다awk:

awk '/^[A-Z]+\>/ { print $1 }' < data

/^[A-Z]+\>/ 성냥줄 시작 부분에 대문자로 단어를 완성하세요. {print $1}그런 다음 해당 줄의 첫 번째 필드를 인쇄합니다.

답변3

이 문제를 해결하는 방법에는 여러 가지가 있습니다.

대문자만 포함된 경우 첫 번째 단어를 인쇄할 수 있습니다.

awk '$1 ~ /^[[:upper:]]+$/ {print $1}'

(인쇄되지만 인쇄 VDD되지는 않음 VDD+DDV)

소문자가 포함되지 않는 한 첫 번째 단어를 인쇄합니다.

awk 'NF && $1 !~ /[[:lower:]]/ {print $1}'

이는 VDD+DDV 또는 USA를 인쇄하지만 VDDfoo는 인쇄하지 않지만 +++.

줄 시작 부분에 모두 대문자인 일련의 문자를 인쇄할 수 있습니다.

sed 's/[^[:alpha:]].*//;/^[[:upper:]]\{1,\}$/!d'

또는 선행 공백을 무시하십시오.

sed 's/^[[:blank:]]*//;s/[^[:alpha:]].*//;/^[[:upper:]]\{1,\}$/!d'

일치 VDD하지만 VDD+xxx일치하지 않습니다VDDxxx

답변4

일방 perl통행:

$ perl -Mopen=locale -anle 'print $F[0] if /^[[:upper:]]+\b/' file 
VDD
GND
AGNDSUB
VMEASPOS
VMEASNEG
VREFEXT

관련 정보