fdisk -l
で実行され/dev/sdbn
実行されるシェルスクリプトを作成したいと思いますfdisk -l
。
抽出された単語を利用してにインストールしたいと思います/mnt
。
たとえば、
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 493 3956672 6 FAT16
文字列のみを抽出するにはどうすればよいですか/dev/sdb1
?
答え1
努力する:
fdisk -l | grep -o '^/dev/sdb[0-9]'
この-o
オプションを使用すると、一致するgrep
パターンのみが印刷されます。
修正する
外して欲しい/dev/sdaX
なら
fdisk -l | grep -o '^/dev/sd[b-z][0-9]'
答え2
次のコマンドを使用します。
fdisk -l | awk '/\/dev\/sdb[0-9]/ {print $1}'
答え3
あなたはそれを使用することができますsed
...
ディレクトリパスにが含まれているので、sedコマンドを次のように区切ること/
にしました_
(通常/
、どの記号を区切り記号として使用できます.)
fdisk -l | sed -n 's_^\(/dev/[^ ]*\) .*$_\1_p'
答え4
ルートアクセス権を持たないユーザーは簡単な方法を使用できますls
。
ls /dev/sd* | grep -o '/dev/sd[a-z][1-9]'
必要に応じて正規表現を編集します。
修正する:@StéphaneChazelasが述べたように、デバイスファイルが存在しても基本デバイスの存在が確認されるわけではありません。代わりにクエリを実行する方が安全です/proc/partitions
。
awk '$NF ~ /^sd[a-z][0-9]+/ {print "/dev/" $NF}' < /proc/partitions