Shell數值操作

來源:互聯網
上載者:User

標籤:linux   shell   sed   bc   數值操作   

1.計算的數值的五種方法:
((i++))
let i++
i=$(expr $i + 1)
i=$(echo $i+1|bc)
i=$(echo $i 1|awk ‘{printf $1+$2}‘)
 
2.time命令用來統計命令的執行時間,這部分時間包括總的已耗用時間,使用者空間
執行時間,核心空間執行時間,它通過ptrace系統調用實現。
 
3.模數使用符號%,而求冪只有bc使用的符號為^,其他命令使用的符號均為**。
 
4.bc程式是Linux下的計算機,可以用來計算進位轉換。例如:
echo "obase:10;ibase8;11" | bc
另一種處理進位轉換的方法是:
echo $((8#20))
表示八進位的20,表示的十進位的值是多少。
 
5.浮點計算有兩種方式:
* 使用bc計算:
echo "scale=3;1/13" | bc
如果不加scale的話,需要使用下面的格式:
echo "1/13" | bc -l
* 使用awk計算:
echo "1 3" | awk ‘{printf("%0.3f",$1+$2)}‘
 
6.$#表示傳給指令碼的參數個數,不包括當前可執行檔的在內,例如:
./test.sh 1 # $#的值為1。
$?表示上一條命令的返回值。
 
7.環境變數RANDOM產生0到32767之間的隨機數,awk的rand函數產生0到1之間的隨機數。
在使用awk的rand函數的時候,需要首先用srand函數埋下種子,例如:
echo "" | awk ‘{srand();printf("%f",rand());}‘
 
8.seq可以產生一系列數,這些數可以按照指定的間隔遞增。例如:
seq 5 # 產生1到5五個數字
seq 1 2 6 # 產生數列 1 3 5
seq -s : 1 5 # 產生數列 1:2:3:4:5
seq -w 1 100 # 產生數列 001 002 ... 100
seq -f "0x%g" 1 3 # 產生數列 0x1 0x2 0x3
 
9.sed的使用方法
* cat regular_express.txt | sed ‘s/[^a-zA-Z]/\n/g‘ | \
sed ‘/^$/d‘ | sort | uniq -c | sort -k 1 -n -r | head
上面的這條命令用於統計文本中出現次數最多的前十個單詞,
sed ‘s/[^a-zA-Z]/\n/g‘ 用來分割單詞,sed ‘/^$/d‘用來去除空行,
sort 將分割好的單詞排序,使得相同的單詞排列在一起,這樣就可以
使用 uniq -c 來進行統計每個單詞出現的次數了,最後將統計好的單
詞按照出現的次數排序,head 只提取出現在前十個的單詞。
* cat index.html | sed -e ‘s/[^A-Za-z]/\n/g‘ | sed ‘/^$/d‘ | \
grep ‘^the$‘ | uniq -c | sed ‘s/[^0-9]//g‘
尋找 the 出現的次數
 
10.shift 每次都將命令列參數向左移動一個,因此當前要處理的參數總為$1


參考資料

===============

Shell編程範例 -- by falcon

Shell數值操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.