8

コマンドを実行し、値を文字列変数に格納する bash スクリプトを作成しています。特定の文字の後に文字列を分割する必要があります。方法はありますか?区切り記号は使用できません。書式はこのようなものです。

  PV Name /dev/sda2
  PV Size 10.39 GB

ここで、/dev/sda2 と 10.39 GB (可能であれば 10.39 だけ) を取得して、新しいファイルに書き込む必要があります。スペースが最初にあるため、区切り文字を使用できません..私は多くのbashスクリプトを作成していません。これを行う方法はありますか?

4

3 に答える 3

7
echo "${var:8}"

$var文字 8 (ゼロベース) から始まる内容をエコーし​​ます。

最初のスペースから何かを取り除くには:

data=${var:8}
echo "${data%% *}"
于 2012-05-25T15:38:19.097 に答える
7

特定の文字のみを取得するには、次を使用しますcut

 $ echo '1234567' | cut -c2-5
 2345

ただし、あなたの場合、awkより良いオプションのように見えます:

$ echo '  PV Size 10.39 GB' | awk '{ print $3 }'
10.39

テキストをスペース/タブで区切られた列として読み取るため、完全に正常に機能するはずです

于 2012-05-25T15:40:27.523 に答える
2

使用できますcut

$ echo "PV Name /dev/sda2" |cut -d " " -f 3
/dev/sda2
于 2012-05-25T15:42:49.270 に答える