現在私のスクリプトには現在のコマンドがあります。
udevadm info /dev/nvme0n1 | grep P:
次の情報を返すには:
P: /(PCIe address)/nvme0/nvme0n1/
本質的に、私はnvme名前空間がgrepの一部ではなく、PCIeアドレスだけを含めたいと思います。 sedで同様のことをしたことを見たことがありますが、読んだ後も直感的ではないようですが、grepを使用することをお勧めします。もし私ができるなら。ありがとう
ベストアンサー1
使い方がsed
複雑である必要はありません。
次のsed
コマンドは、文字列で始まらないすべての行P:
(最初の式)を/
削除し、最初の式(2番目の式)の前のすべての項目を削除し、変更された/nvme0/nvme0n1/
行から行末までのすべての項目(3番目の式)を削除します。します。 )。このような作業では、PCIe アドレスを後ろに残す必要があります。
udevadm info /dev/nvme0n1 |
sed -e '/^P:/!d' \
-e 's,[^/]*/,,' \
-e 's,/nvme0/nvme0n1/.*,,'
またはStefanが指摘したように、コメントから、
udevadm info -q path /dev/nvme0n1