您好,登錄后才能下訂單哦!
一、打印字符串長度
如下,循環(huán)打印下面這名話字母數(shù)不大于6個的單詞
She could see the open door of a departmental office.
vim print-str.sh
#!/bin/bash
#打印字符串個數(shù)
#第一種解決思路
for i in She could see the open door of a departmental office
do
[ ${#i} -le 6 ]&& echo $i
done
echo +++++++++++++++++++++++++++++++++++++
#第二種解決思路
for i in She could see the open door of a departmental office
do
[ `echo $i|wc -L` -le 6 ]&& echo $i
done
echo +++++++++++++++++++++++++++++++++++++
#第三種解決思路
echo "She could see the open door of a departmental office" |awk '{for(i=1;i<=NF;i++) if(length($i)<=6) print $i}'
上面腳本中有一個點給大家說一下:
${#}的作用
幫助文檔說明如下:
${#parameter}
${#var} 可以用來計算出變量值的長度
[root@xuegod72 ~]# NAME=martin
[root@xuegod72 ~]# echo ${#NAME}
6
那么${ }還有一些其它方面的作用,比如截取、替換
比如我們定義一個變量:file=/var/log/message
${file#*/}: 刪掉第一個 / 及其左邊的字符串
[root@xuegod72 ~]# echo ${file#*/}
var/log/message
${file##*/}: 刪掉最后一個 / 及其左邊的字符串
[root@xuegod72 ~]# echo ${file##*/}
message
${file#*.}: 刪掉第一個 . 及其左邊的字符串
[root@xuegod72 ~]# file=/var/log/yum.log/xuegod.txt
[root@xuegod72 ~]# echo ${file#*.}
log/xuegod.txt
${file##*.}: 刪掉最后一個 . 及其左邊的字符串:
[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt
[root@xuegod72 ~]# echo ${file##*.}
txt
${file%/*}: 刪掉最后一個 / 及其右邊的字符串:
[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt
[root@xuegod72 ~]# echo ${file%/*}
/var/log/yum.log
${file%%/*}: 刪掉第一個 / 及其右邊的字符串:
[root@xuegod72 ~]# echo ${file%%/*}
空值
${file%.*}: 刪掉最后一個 . 及其右邊的字符串
[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt
[root@xuegod72 ~]# echo ${file%.*}
/var/log/yum.log/xuegod
${file%%.*}: 刪掉第一個 . 及其右邊的字符串
[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt
[root@xuegod72 ~]# echo ${file%%.*}
/var/log/yum
說明:
# 是去掉左邊(鍵盤上#在 $ 的左邊)
% 是去掉右邊(鍵盤上% 在$ 的右邊)
單一符號是最小匹配;兩個符號是最大匹配
字符串截取
字符串提?。?/span>
${file:0:5}:提取最左邊的 5 個字節(jié)(中間用冒號分開)
[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt
[root@xuegod72 ~]# echo ${file:0:5}
/var/
${file:5:5}:提取第 5 個字節(jié)右邊的連續(xù)5個字節(jié)
[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt
[root@xuegod72 ~]# echo ${file:5:5}
log/y
對變量值進行替換
${file/var/opt}:將第一個var 替換為opt
[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt
[root@xuegod72 ~]# echo ${file/var/opt}
/opt/log/yum.log/xuegod.txt
${file/var/opt}:將全部var 替換為opt
[root@xuegod72 ~]# file=/var/log/var.log/var.txt
[root@xuegod72 ~]# echo ${file//var/opt}
/opt/log/opt.log/opt.txt
#判斷一個文件的擴展名是否為真,如果為真打印“字符串?dāng)?shù)量”,否則,打印0
if expr "$1" : ".*\.pub" > /dev/null ; then
ID_FILE="$1"
else
ID_FILE="$1.pub"
fi
解釋:判斷位置$1參數(shù)的文件擴展名,是否為“.*.pub”,如果為0則為假,否則打印字符串為8
舉例:expr "test.txt" : ".*\.pub" 為假
舉例:expr "test.pub" : ".*\.pub" 為真
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。