隨筆-314  評論-209  文章-0  trackbacks-0
          read一次可以為多個變量賦值——但一次只能讀一行,比如:
              #!/bin/bash
              IFS=:
              read aa bb cc < /etc/passwd
              echo $aa $bb $cc
              (注:默認shell是無法將/etc/passwd中那些以冒號分割的字符串分割的,通過設(shè)置IFS可以實現(xiàn)這一點,詳情見本文底部)
              我們將看到的結(jié)果是前兩個變量被賦予了正確的值,最后一個變量被賦予了文件第一行剩下的所有值。(因為read一次只能讀一行)
              而現(xiàn)實中如果一個文件保存了這樣一個電話本:
              路人甲  13900000000
              主角A   23320000
              神秘人  12x0x0x0000
              旁白    85600000
              ……
              如果我們要寫一個腳本來實現(xiàn)該電話本的查詢,通常會這樣寫:
              #!/bin/bash
              while read name num
              do
              if [ $name = $1 ]
                 then echo $num
              fi
              done
              當我們把想查詢的人名作為參數(shù)來啟動腳本,就可以看到他的號碼,然后給他打騷擾電話……
              (關(guān)于while等流程控制語句,我會在稍后整理)
           
           
              抽取行
              head -x 文件               //抽取前x行
              tail -x 文件               //抽取末尾x行
              sed  -n xp 文件          //抽取文件中的第x行   注:這里的-n就是-n,不代表別的。
           
           
              抽取列
              cut -fx -dy 文件           //以y作為分隔符,抽取第x列
              awk -Fy '{print $x}' 文件  //以y作為分隔符,抽取第x列
                                         注:awk可以抽取多列,在指令中使用逗號分割,例:
                                         awk -F: '{print $3,$5}' /etc/passwd
                                                  將會抽取文件中的第3列和第5列
           
           
              排序
              sort -ty +xn 文件          //以y作為分隔符,以第1+x列為基準排序
              注:如果使用了該指令,則不能在同一語句內(nèi)使用其它參數(shù),如有需要,只能在管道中再sort一次,如: sort +4n /etc/fstab | sort -r
                   其它參數(shù):  n  對數(shù)字排序
                             d   對字母排序
                             M   對月份排序(諸如JAN,FEB....DEC之類)
                             r   逆向
           
           
              $IFS
              很多時候我們并不需要指定分隔符,因為$IFS默認包含了空格,\t和換行符。
              只有遇到其它分隔符是我們才需要特別指定,比如$PATH和/etc/passwd中就是以冒號分割,遇到類似這種情況,我們才需要對$IFS進行指定。
          posted on 2010-09-17 16:05 xzc 閱讀(737) 評論(0)  編輯  收藏 所屬分類: linux/unix
          主站蜘蛛池模板: 郓城县| 尤溪县| 灯塔市| 枝江市| 拉萨市| 平和县| 西乌珠穆沁旗| 德化县| 永城市| 平塘县| 乌兰县| 盐源县| 新闻| 塔城市| 邯郸市| 略阳县| 甘泉县| 永宁县| 普兰县| 张北县| 从江县| 四川省| 云浮市| 巢湖市| 灌云县| 宁乡县| 黎川县| 桦甸市| 正安县| 奉贤区| 重庆市| 绍兴市| 梁河县| 海门市| 建始县| 松潘县| 抚松县| 万安县| 新蔡县| 齐河县| 遂溪县|