DVDからタイトルを読みますか?


8

私は各DVDイメージに半一意の大文字の名前があることに気付きました。Linuxでこの名前を非rootユーザーとして単に読み取るための標準化された方法はありますか?私はカーネル3.7を実行しているUbuntu 12.04派生物を使用しています。次のように、ドライブに現在あるディスクの名前を取得するだけです。

DVD_NAME="$( ./read-dvd-name.sh )"

1
非環境変数にすべて大文字の変数名を使用することは悪い習慣です。
ヨルダン2013年

5
ありがとう、しかしこれは私の質問に答えません:)悪い習慣は議論の余地があります。
Naftuli Kay 2013

2
それがコメントであり、答えではなかった理由です。
ヨルダン2013年

回答:


11

あなたはそれのために使うことができますblkid

DVD_NAME=$(blkid -o value -s LABEL /dev/dvd)

/dev/dvdそのための読み取り権限が必要です)。

または:

DVD_NAME=$(udevadm info -n dvd -q property | sed -n 's/^ID_FS_LABEL=//p')

特別な権限を必要としない場合(udevrootとして実行)は、を使用してラベル名を照会し、照会しblkidたデバイスデータベースを更新しますudevadm)。


そのためにはrootになる必要がありますか?
Naftuli Kay、2013

1

これがあなたに役立つかどうかはわかりません:

isoinfo  -i C462_19-08-26_09-56.iso -d | sed -n 's/^Volume id: //p'
isoinfo  -i C462_19-08-26_09-56.iso -d | awk '/Volume id: / {print $3}'

私の不器用な元の解決策:

dvdtitle=$(isoinfo  -i isofile.iso -d | grep "Volume id:" | awk '{print $3}')

2
(1)質問のタイトルは、「DVDからタイトルを読み取りますか?」です。質問の最後の文は、「ドライブに現在あるディスクの名前を単に取得したいのですが…」と言っているので、まずを提案し、ポストスクリプトとして、コマンドを使用して、を指定することにより、ファイル内のISOイメージを検査できます。…(続き)isoinfo -i /dev/cdrom -d   ……   -i iso_image_filename 
G-Manは 'Reinstate Monica'を

2
(続き)…(2)awkは強力なテキスト処理ツールです。のような他のテキスト処理ツールと組み合わせて使用​​する必要はほとんどありませんgrep。パイプラインはgrep "Volume id:" | awk '{print $3}'、に簡略化できますawk '/Volume id: / {print $3}'。(3)ボリュームIDは複数の単語にすることができ、このprint $3アプローチでは最初の単語のみが表示されます。でこれを処理する方法はいくつかありますawkが、より簡単な方法は、出力をからisoinfoにパイプすることsed -n 's/Volume id: //p'です。(4)サニティチェックとして、を検索することをお勧めします/^Volume id: /
G-Manは 'Reinstate Monica'を

親愛なるGマン、貴重なヒントをありがとう。:-)敬具X.
xerostomus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.