ハードウェア情報を含むファイルがあります。例えば
Part Number : 0-0000-00
Board Revision : 0
PCB Serial Number : ZKZHY5431ZG
PCB Fab Part Number : 0-0000-00
Deviation Number : 0
MAC Address : FC:58:9A:07:4F:D4
MAC Address Block Size : 4
PCA Assembly Number : 000-00000-00
PCA Revision Number : 0
Product/Model Number : IG21-EU-E-K9
Top Assembly Part Number : 074-123960-01
Top Revision Number : 02
Top Assembly Serial Number : PSZ24351JZG
RMA Test History : 00
RMA History : 00
PEP Product Identifier (PID) : IG21-EU-E-K9
PEP Version Identifier (VID) : V00
System Flags : 00
Controller Type : 0000
Host Controller Type : 0000
Mfr Service Date : 2020.12.28-47:59:59
exclude
ハードウェアファイルでcatをするときに少ない行を書きたいです。これを達成するために、次のコマンドを試しました。
cat hardware.txt | grep -Ev 'Part Number|Board Revision|PCB Fab Part Number|PCA Assembly Number|PCA Revision Number'
うまくいきますが、小さな問題があります。このコマンドを実行するとTop Assembly Part Number
。Part Number
grepオプションを試してみましたが、-w
コンソールには何も出力されません。ハードウェアファイルの各フィールドにいくつかの値があるため、正確な一致が失敗するようです。
誰か私を助けてください。除外されることをどのように避けることができますか?Top Assembly Part Number
ベストアンサー1
行の先頭にパターンを固定するだけです^
。どちらも必要ありませんcat
。必要なものは次のとおりですgrep
。
$ grep -Ev '^(Part Number|Board Revision|PCB Fab Part Number|PCA Assembly Number|PCA Revision Number)' file
PCB Serial Number : ZKZHY5431ZG
Deviation Number : 0
MAC Address : FC:58:9A:07:4F:D4
MAC Address Block Size : 4
Product/Model Number : IG21-EU-E-K9
Top Assembly Part Number : 074-123960-01
Top Revision Number : 02
Top Assembly Serial Number : PSZ24351JZG
RMA Test History : 00
RMA History : 00
PEP Product Identifier (PID) : IG21-EU-E-K9
PEP Version Identifier (VID) : V00
System Flags : 00
Controller Type : 0000
Host Controller Type : 0000
Mfr Service Date : 2020.12.28-47:59:59
より安全にするには、パターンの後にゼロ以上のスペースがあり、次の場合にのみ一致することを確認できます:
。
grep -Ev '^(Part Number|Board Revision|PCB Fab Part Number|PCA Assembly Number|PCA Revision Number) *:' file