天天看點

Linux筆記(shell特殊符号,sort排序,wc統計,uniq去重,tee,tr,split)

一、shell特殊符号

*  任意個任意字元

?  任意一個字元

#  注釋字元

\  脫義字元

例如:

[root@localhost ~]# a=2

[root@localhost ~]# b=3

[root@localhost ~]# c=$a$b

[root@localhost ~]# echo $c

23

[root@localhost ~]# c=\$a\$b

$a$b

管道符

cut 截取

-d  指定分隔符

-f  指定截取那一段

[root@localhost ~]# cat /etc/passwd |head -3 | cut -d ":" -f 1-3

root:x:0

bin:x:1

daemon:x:2

$變量的字首

!$ 正則裡面表示行尾

;多條指令寫到一行,用;分割

~使用者的家目錄。正規表達式裡表示比對符

&把指令放到背景

> 正确重定向

>> 正确追加重定向

2> 錯誤重定向

2>>錯誤追加重定向

&>正确錯誤重定向

|| 用在shell中表示或者的意思,如果第一條指令執行成功,則不執行第二條指令。如果第一條指令不成功,則執行第二條指令

&& 目前面的指令執行成功時,才執行後面的指令

[root@localhost ~]# ls

1.txt  anaconda-ks.cfg

[root@localhost ~]# [ -d litongyao ] || mkdir litongyao   (沒有litongyao這個目錄,則執行第二條)

1.txt  anaconda-ks.cfg  litongyao

[root@localhost ~]# [ -d litongyao ] && mkdir litongyao   (存在litongyao目錄。在執行時會報錯)

mkdir: 無法建立目錄"litongyao": 檔案已存在

二、 sort_wc_uniq指令

sort  排序

sort + 檔案名     (預設是以“阿斯瑪”排序)

特殊符号>數字>字母

-n            預設以數字去排序(預設字母和特殊符号為0,是以會排在最前面)

-r            反序排序

wc     統計

-l            統計行數

-m            統計字元數 (隐藏的換行符也算   用cat -A 檢視隐藏符号)

-w            統計字元串 (預設以空白格或,為分隔符)

uniq    去重  (但是要先排好順序,是以一般和sort一起用)

[root@localhost ~]# uniq 1.txt 

1

2

3

1111

2222

3333

111

[root@localhost ~]# sort 1.txt | uniq 

 uniq -c       顯示重複次數

[root@localhost ~]# sort 1.txt | uniq -c

      2 1

      1 111

      1 1111

      2 2

      1 2222

      2 3

      1 3333

三、tee_tr_split

tee 和輸出重定>向有點像,但是把重定向的内容列印到螢幕上

-a 追加,和>>相似

tr  替換字元

[root@localhost ~]# echo "litongyao" |tr '[lty]' '[LTY]'

LiTongYao

[root@localhost ~]# echo "litongyao" |tr '[a-z]' '[A-Z]'

LITONGYAO

split 切割檔案

split -b 100M + filename  以檔案大小切割 (可以指定檔案字首,預設是x開頭)

split -l 1000 + filename  以行數切割

本文轉自 小新銳 51CTO部落格,原文連結:http://blog.51cto.com/13407306/1982924,如需轉載請自行聯系原作者

繼續閱讀