8.bash的基礎(chǔ)特性(3)

1.文件名通配---globbing(整體文件名匹配)
匹配模式(與正則表達(dá)式不同)
--------------------
*:匹配任意長度的任意字符:
pa*,*pa*,*pa,*p*a*
---------------------
?:匹配任意單個字符:
pa?
--------------------------------
[]:匹配指定范圍內(nèi)任意單個字符(對于[]里面的字符不區(qū)分大小寫)
[a-z],[abc],[0-9]
[[:upper:]]    只匹配大寫字母
[[:lower:]]  所有小寫字母
[[:alpha:]] 所有字母
[[:digit:]]  所有數(shù)字
[[:alnum:]]  所有字母和數(shù)字
[[:space:]] 所有空白字符
[[:punct:]] 所有標(biāo)點(diǎn)符號
[^]:匹配指定范圍外的任意單個字符
2.IO重定向
程序的數(shù)據(jù)流有三種:
      輸入的數(shù)據(jù)流<-- 標(biāo)準(zhǔn)輸入(stdin),鍵盤
      輸出的數(shù)據(jù)流-->標(biāo)準(zhǔn)輸出(stdout),顯示器
      錯誤輸出流-->標(biāo)準(zhǔn)輸出(stderr),顯示器
fd:file descriptor  , 文件描述符
    標(biāo)準(zhǔn)輸入:0
    標(biāo)準(zhǔn)輸出:1
    錯誤輸出:2
IO重定向:

cat的讀取與輸出:其自身帶有<與>功能

    覆蓋輸出重定向:  >
          [root@localhost tmp]# cat /etc/issue > /tmp/issue.out
          [root@localhost tmp]# cat /tmp/issue.out > /dev/tty3
          特性:覆蓋輸出辫诅,將原文件的內(nèi)容覆蓋!
    追加輸出重定向:>>
          特性:追加輸出
    可以通過[root@localhost tmp]# set -C
     來設(shè)置 禁止覆蓋輸出重定向,但是僅對當(dāng)前shell有效
    在這之后裹虫,如果仍然想要強(qiáng)行覆蓋輸出重定向
           ~]#cat etc/issue >| /tmp/issue.out
         來達(dá)成
    ~]#set +C   再次關(guān)閉禁止輸出覆蓋重定向功能    
-------------------------------------------------------------------------
錯誤輸出流重定向:
      ~]# cat /etc/issue1 2> /tmp/issue.err
        將這個命令產(chǎn)生的錯誤流定向給issue.err(覆蓋岛心,如果不產(chǎn)生錯誤设预,就會清空目標(biāo)文件的內(nèi)容)
      ~]# cat /etc/issue1 2>> /tmp/issue.err
        追加輸入
   注意點(diǎn):
              當(dāng)該命令沒有產(chǎn)生錯誤時靠汁,就是說不會產(chǎn)生錯誤信息溃蔫,那么就不會定向到issue.err中急黎,而是將issue1的內(nèi)容輸出到屏幕上
---------------------------------------------------------------------------
合并正常輸出流和錯誤輸出流1
~] cat  /etc/sss  &>  /tmp/sss.out
~] cat  /etc/sss  &>>  /tmp/sss.out
-----------------------------------
合并正常輸出流和錯誤輸出流2    扎狱,  注意侧到,不能寫2>>,更改最前面的就可以了
~]# cat /etc/sss >> /tmp/sss.out  2>&1       (追加 )
~]# cat /etc/sss > /tmp/sss.out  2>&1          (覆蓋)

tr命令 數(shù)據(jù)變換(不修改原文件)也有輸入和輸出目標(biāo)

   tr [OPTION]... SET1 [SET2]
[root@localhost tmp]# tr 'a-z'  'A-Z'
aaaffa
AAAFFA
afacsv
AFACSV
ada
ADA

用法1: 
tr SET1 SET2 </PATH/FROM/SOMEFILE
用法2:刪除符合SET1中字符的數(shù)據(jù)
tr -d SET1 < /PATH/FROM/SOMEFILE

輸入重定向無追加,寫<< 代表重新建立一個臨時文件淤击,然后向這個臨時文件中輸入值匠抗,如果是tr,就經(jīng)過變換污抬,再到 >中汞贸,如果是cat,就是直接到>的文件中

HERE Document : <<

例子:
[root@localhost ~]# cat > /tmp/cat.out <<EOF
> how aaa
> aaa
> dd
> EOF
[root@localhost ~]# cat /tmp/cat.out
how aaa
aaa
dd

管道:將前一個命令的輸出數(shù)據(jù)流印机,直接定向給后一個程序當(dāng)做輸入數(shù)據(jù)流,可以實(shí)現(xiàn)多級連接

例子1
[root@localhost ~]# cat /etc/issue | tr 'a-z' 'A-Z'
\S
KERNEL \R ON AN \M
------------------------------------------------------------------
例子2
[root@localhost ~]# who
(unknown) :0           2019-06-16 07:41 (:0)
root     tty2         2019-06-16 07:41
root     pts/1        2019-06-16 08:33 (192.168.43.74)
root     tty3         2019-06-16 09:18
[root@localhost ~]# who | head -2
(unknown) :0           2019-06-16 07:41 (:0)
root     tty2         2019-06-16 07:41
[root@localhost ~]# who | head -2 | tr 'a-z' 'A-Z'
(UNKNOWN) :0           2019-06-16 07:41 (:0)
ROOT     TTY2         2019-06-16 07:41
--------------------------------------------------------------
例子3
[root@localhost ~]# who | head -2 | tr -d '0-9' 
(unknown) :           -- : (:)
root     tty         -- :
--------------------------------------------------------------

tee:把數(shù)據(jù)流復(fù)制一份矢腻,一份給/tmp/class.txt,一份給 tr 'a-z' 'A-Z'

[root@localhost ~]# who | tee /tmp/class.txt | tr 'a-z' 'A-Z'
(UNKNOWN) :0           2019-06-16 07:41 (:0)
ROOT     TTY2         2019-06-16 07:41
ROOT     PTS/1        2019-06-16 08:33 (192.168.43.74)
ROOT     TTY3         2019-06-16 09:18
[root@localhost ~]# cat /tmp/class.txt
(unknown) :0           2019-06-16 07:41 (:0)
root     tty2         2019-06-16 07:41
root     pts/1        2019-06-16 08:33 (192.168.43.74)
root     tty3         2019-06-16 09:18
[root@localhost ~]# 
----------------------------------------------
將數(shù)據(jù)流一份保留在文件中,一份輸出出來交給后面的管道
[root@localhost ~]# who |tee /tmp/class.txt 
(unknown) :0           2019-06-16 07:41 (:0)
root     tty2         2019-06-16 07:41
root     pts/1        2019-06-16 08:33 (192.168.43.74)
root     tty3         2019-06-16 09:18

特殊設(shè)備

/dev/null
加設(shè)備射赛,數(shù)據(jù)丟入進(jìn)去之后多柑,相當(dāng)于直接丟棄
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市楣责,隨后出現(xiàn)的幾起案子竣灌,更是在濱河造成了極大的恐慌,老刑警劉巖秆麸,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帐偎,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛔屹,警方通過查閱死者的電腦和手機(jī)削樊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兔毒,“玉大人漫贞,你說我怎么就攤上這事∮” “怎么了迅脐?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長豪嗽。 經(jīng)常有香客問我谴蔑,道長,這世上最難降的妖魔是什么龟梦? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任隐锭,我火速辦了婚禮,結(jié)果婚禮上计贰,老公的妹妹穿的比我還像新娘钦睡。我一直安慰自己,他們只是感情好躁倒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布荞怒。 她就那樣靜靜地躺著洒琢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪褐桌。 梳的紋絲不亂的頭發(fā)上衰抑,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機(jī)與錄音荧嵌,去河邊找鬼停士。 笑死,一個胖子當(dāng)著我的面吹牛完丽,可吹牛的內(nèi)容都是我干的恋技。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼逻族,長吁一口氣:“原來是場噩夢啊……” “哼蜻底!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起聘鳞,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤薄辅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抠璃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體站楚,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年搏嗡,在試婚紗的時候發(fā)現(xiàn)自己被綠了窿春。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡采盒,死狀恐怖旧乞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情磅氨,我是刑警寧澤尺栖,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站烦租,受9級特大地震影響延赌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜叉橱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一挫以、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赏迟,春花似錦屡贺、人聲如沸蠢棱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至糕再,卻和暖如春量没,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背突想。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工殴蹄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人猾担。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓袭灯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绑嘹。 傳聞我的和親對象是個殘疾皇子稽荧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355