your_id=$-on-$ echo"$your_id
"your_id=`printf "
%s%s%s""
$user""
-on-""
$hostname
"` echo
"$your_id
"
2.shell實現建立前一天時間的目錄:
1 aaa=`date +%y%m%d --date='1 days ago'`;
2 bbb="
mkdir
"$aaa
3$bbb45
67 filename=$1
8 string1=exist
9 string2=xi
10 command="
cat $filename | grep $string1 | grep $string2"11
eval $command
1213
14 [~/shell]# sh test.sh runshell.sh
15 echo "
exist;";
16 echo "
notexist;
";
原來在shell中如果遇到要擷取字串的情況,就呼叫awk中的substr來實現。
今天了解到一種新的方法,原來shell中本身就支援這種用法。
如,有一字串」12345678″,現在要擷取第三個到第六個字元的字串區間。
則可以:
1 [xok.la ~]$ export str="123456789
"2 [xok.la ~]$ echo $
3456
4 [xok.la ~]$ unset str
從以上第二個表示式可以看出這個用法,即:$
可以歸納為:$,且支援表示式,如:6-3。
補充一下從網上找到一些其他的用法:
shell字串的擷取的問題:
一、linux shell 擷取字元變數的前8位,有方法如下:
1.expr substr "$a"182.echo $a|awk '
'3.echo $a|cut -c1-8
4.echo $
5.expr $a : '
\(.\\).*
'6.echo $a|dd bs=1 count=8
2>/dev/null
二、按指定的字串擷取
1、第一種方法:
$ 從左向右擷取最後乙個string後的字串
$從左向右擷取第乙個string後的字串
$從右向左擷取最後乙個string後的字串
$從右向左擷取第乙個string後的字串
「*」只是乙個萬用字元可以不要
例子:$ myvar=foodforthought.jpg
2、第二種方法:$:擷取變數varible從n1到n2之間的字串。
可以根據特定字元偏移和長度,使用另一種形式的變數擴充套件,來選擇特定子字串。試著在 bash 中輸入以下行:
$ exclaim=cowabunga
$ echo $
cow
$ echo $
abunga
這種形式的字串截斷非常簡便,只需用冒號分開來指定起始字元和子字串長度。
三、按照指定要求分割:
比如獲取字尾名
ls -al | cut -d "." -f2
4.既然提到了cut命令,就再找一篇文件吧
/> cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
... ...
/> cut -d : -f 1,5 /etc/passwd #-d後面的冒號表示字段之間的分隔符,-f表示取分割後的哪些字段
root:root #這裡取出的是第乙個和第五個字段。
bin:bin
daemon:daemon
adm:adm
... ...
/> cut -d: -f 3- /etc/passwd #從第三個字段開始顯示,直到最後乙個字段。
0:0:root:/root:/bin/bash
1:1:bin:/bin:/sbin/nologin
2:2:daemon:/sbin:/sbin/nologin
3:4:adm:/var/adm:/sbin/nologin
4:7:lp:/var/spool/lpd:/sbin/nologin
... ...
這裡需要進一步說明的是,使用cut命令還可以剪下以字元數量為標量的部分字元,該功能通過-c選項實現,其不能與-d選項共存。
/> cut -c 1-4 /etc/passwd #取每行的前1-4個字元。
/> cut -c-4 /etc/passwd #取每行的前4個字元。
root
bin:
daem
adm:
... ...
/> cut -c4- /etc/passwd #取每行的第4個到最後字元。
t:x:0:0:root:/root:/bin/bash
:x:1:1:bin:/bin:/sbin/nologin
mon:x:2:2:daemon:/sbin:/sbin/nologin
:x:3:4:adm:/var/adm:/sbin/nologin
... ...
/> cut -c1,4 /etc/passwd #取每行的第乙個和第四個字元。
rtb:
dma:
... ...
/> cut -c1-4,5 /etc/passwd #取每行的1-4和第5個字元。
root:
bin:x
daemo
adm:x
Shell 字串分割
a hello,world,test 1 使用awk分割字串,取出其中一部分 這可能是最容易想到的,同時也是awk最常見的應用之一。echo a awk f awk的 f開關指定分隔符,多個分隔符應當寫在中。2 使用ifs將字串分割為陣列 要將 a分割開,可以這樣 old ifs ifs ifs a...
Shell指令碼分割字串
以字元進行切割時 從字串左邊開始計數 如果想從字串的左邊開始計數,那麼擷取字串的具體格式如下 其中,string 是要擷取的字串,start 是起始位置 從左邊開始,從 0 開始計數 length 是要擷取的長度 省略的話表示直到字串的末尾 url c.biancheng.net echo 結果為b...
Python 分割字串與拼接字串
號 實現字串連線 zhrq 95 zhrq95 a 95 b zhrq print b a 注 是反引號,因為其容易看錯,此方法不推薦 zhrq95 print b str a zhrq95 print b repr a repr a 與上面的類似 zhrq95 split 這個函式的作用是將字串根...