日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell的数字、字符串处理

發布時間:2023/11/27 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell的数字、字符串处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、顯示小數點前的0

由于bc計算器目前還不支持顯示小數點前的0,所以我們要用一用強大的awk工具啦!

例如:

echo?"scale=2;?0.13?+?0.1"?|?bc?|?awk?'{printf?"%.2f",?$0}'

2、表示1~21的命令

echo `seq 1 21`

3、shell 將字符串轉換為數字
例如:a="024"

1.用${{a}}

2.用let達到(()) 運算效果。

let num=0123;
echo $num;?
83

3.雙括號運算符:

a=$((1+2));

echo $a;

等同于:

a=`expr 1 + 2`

echo "2019年8月21日" | tr -cd "[0-9]"

這樣就得到2019821

4、time命令簡介

用于打印出一條命令或一個程序的執行時間
time 命令以秒為單位將一條命令執行期間所用的時間、系統時間和 time 命令的執行時間打印在標準錯誤中

time結果由三部分組成:real、user和sys

? ? 有時處于數據處理的需要,我們需要將time的運行結果輸出到文件中,并進行相應的處理,一般情況下都是要得到real的結果,這時如果直接用平時使用的重定向的方法去導入到文件,是不會達到想要的效果;time命令的輸出結果是到stderr的,而不是到stdout,所以重定向的方法需要改變。例如:

(time ls) 2>>out.txt? ?

? >>? 符號是重定向并添加到文件中,也就是文件內容不會進行覆蓋

>? 符號,大家應該猜到了吧,這個達到的效果是直接將前面的內容覆蓋掉

數值之間的比較

>? ?=? ?<? ?>=? ?<=? ?

比較格式: [ num1 比較符 num2 ]? ? 左邊的括號與num1之間有一個空格,num2和右邊的括號之間也有空格。

比較符:
-eq 判斷相等,相等返回true,否則返回false
-ne 判斷是否不相等,不相等返回true,否則返回false
-gt 判斷左邊是否大于右邊的值,大于則返回true,否則返回false
-lt 判斷左邊是否小于右邊的值,小于則返回true,否則返回false
-ge 判斷左邊是否大于或等于右邊的值,大于則返回true,否則返回false
-le 判斷左邊是否小于右邊的值,小于則返回true,否則返回false

小數的比較
1.用bc 對小數進行運算
echo 5.5+1.1 | bc
6.6

2.強大的awk判斷小數點后的位數

a=5.2130;echo $a | awk '{printf "%.3f", $0}'

5.213
3.用awk比較大小

awk -v num1=1 -v num2=0.251 'BEGIN{print(num1>num2)?"0":"1"}'
0
如果num1>num2打印輸出0,否則輸出1

4.用expr

?a=2.014?b=1.025;expr $a > $b

echo $?
0

返回值為0:表示a>b;返回值為1:表示a<b

a=2.014 b=1.025;expr $a \> $b

如果a>b,則輸出為1;如果a<b,則輸出為0
5.使用br

echo "6.6>5.5" |br
1

返回值為1:表示前者大于后者;返回0:表示后者大于前者

總結

以上是生活随笔為你收集整理的shell的数字、字符串处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:shell的数字、字符串处理