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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

shell的数字、字符串处理

發(fā)布時(shí)間:2023/11/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell的数字、字符串处理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、顯示小數(shù)點(diǎn)前的0

由于bc計(jì)算器目前還不支持顯示小數(shù)點(diǎn)前的0,所以我們要用一用強(qiáng)大的awk工具啦!

例如:

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

2、表示1~21的命令

echo `seq 1 21`

3、shell 將字符串轉(zhuǎn)換為數(shù)字
例如:a="024"

1.用${{a}}

2.用let達(dá)到(()) 運(yùn)算效果。

let num=0123;
echo $num;?
83

3.雙括號(hào)運(yùn)算符:

a=$((1+2));

echo $a;

等同于:

a=`expr 1 + 2`

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

這樣就得到2019821

4、time命令簡(jiǎn)介

用于打印出一條命令或一個(gè)程序的執(zhí)行時(shí)間
time 命令以秒為單位將一條命令執(zhí)行期間所用的時(shí)間、系統(tǒng)時(shí)間和 time 命令的執(zhí)行時(shí)間打印在標(biāo)準(zhǔn)錯(cuò)誤中

time結(jié)果由三部分組成:real、user和sys

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

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

? >>? 符號(hào)是重定向并添加到文件中,也就是文件內(nèi)容不會(huì)進(jìn)行覆蓋

>? 符號(hào),大家應(yīng)該猜到了吧,這個(gè)達(dá)到的效果是直接將前面的內(nèi)容覆蓋掉

數(shù)值之間的比較

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

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

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

小數(shù)的比較
1.用bc 對(duì)小數(shù)進(jìn)行運(yùn)算
echo 5.5+1.1 | bc
6.6

2.強(qiáng)大的awk判斷小數(shù)點(diǎn)后的位數(shù)

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:表示后者大于前者

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

歡迎分享!

轉(zhuǎn)載請(qǐng)說(shuō)明來(lái)源于"生活随笔",并保留原作者的名字。

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