ファイルの最初の列にある大文字の単語を印刷します。

ファイルの最初の列にある大文字の単語を印刷します。

私の出力が欲しいです。

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'

一致するVDDVDD+xxx一致しないVDDxxx

答え4

一方perl通行:

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

関連情報