我正在編寫一個bash腳本,它將執行命令並將值存儲在字符串變量中,現在我需要在某些字符後拆分字符串。有沒有辦法?怎麼把格式是有點像這個需要在特定數量的字符後在bash中拆分字符串
PV Name /dev/sda2
PV Size 10.39 GB
這裏我需要在/ dev/SDA2和10.39 GB我不能使用分隔符(如果可能的話,只是獨自10.39),並在一個新的文件寫。我不能使用分隔符,因爲空間是第一次..我沒有做過多的bash腳本。有沒有辦法做到這一點?
我正在編寫一個bash腳本,它將執行命令並將值存儲在字符串變量中,現在我需要在某些字符後拆分字符串。有沒有辦法?怎麼把格式是有點像這個需要在特定數量的字符後在bash中拆分字符串
PV Name /dev/sda2
PV Size 10.39 GB
這裏我需要在/ dev/SDA2和10.39 GB我不能使用分隔符(如果可能的話,只是獨自10.39),並在一個新的文件寫。我不能使用分隔符,因爲空間是第一次..我沒有做過多的bash腳本。有沒有辦法做到這一點?
echo "${var:8}"
將回顯$var
開始於字符8(從零開始)的內容。
要脫掉東西從第一個空間:
data=${var:8}
echo "${data%% *}"
要獲得只有某些字符,請使用cut
:
$ echo '1234567' | cut -c2-5
2345
然而,你的情況awk
看起來更好的選擇:
$ echo ' PV Size 10.39 GB' | awk '{ print $3 }'
10.39
它將文本讀取爲空格/製表符分隔列NS,所以它應該工作完全正常
你可以使用cut
:
$ echo "PV Name /dev/sda2" |cut -d " " -f 3
/dev/sda2
我不明白您的分隔符約束。不'awk'{print $ 3}''工作嗎?如果不是,那麼'$ 4'而不是'$ 3'呢? – mouviciel