2012-12-26 80 views
3

我只是試圖從一個變量中刪除一個%符號,所以我可以對結果執行數學計算。我已經試過幾件事情,但他們都不似乎工作:從字符串中刪除一個字符

$ output="23%" 
# usep=$(echo $output | awk '{print $1}' | cut -d '%' -f 1) 
# usep=`echo $output | sed 's/\%//g` 
# usep=`echo $output | head -c 2` 

變量usep仍然包含%字符。有任何想法嗎?爲什麼使用cut沒辦法

$ output="23%" 
$ usep=${output%%\%} 
$ echo $usep 
23 
+0

它看起來像你只是嘗試隨機命令,不明白每個命令的作用。閱讀每個人的手冊頁,以便你能理解他們,然後不要使用他們中的任何一個,而是看魯賓的回答。另外,考慮到你在上面發佈的內容,我保證你在腳本的其餘部分做了錯誤的事情,並用「數學計算」來發布,如果你想要幫助的話。 –

回答

7

您可以使用POSIX參數替代不適合你,但這是一個w奧克斯對我來說很完美:

#!/bin/bash 

output="23%" 
usep=`echo $output | cut -d '%' -f 1` 
echo $usep 
+0

絕對是最好的答案。不需要使用外部工具。 –

+0

@gniourf_gniourf生命換人! (: – Rubens

+1

FWIW - 這是POSIX參數替換,任何符合POSIX標準的shell都會有 - 例如ksh。參見:http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02 –

2

分配output作爲

output="23%" 

,你在

usep=`echo $output | sed 's/%//g'` 
2

不知道錯過了第二'