unix shell編程摘記系列(二)

來源:互聯網
上載者:User

標籤:insert   字串   運算式   

一、Regex

句點.    //匹配任意單個字元,如a..表示匹配a後兩個字元

^        //匹配行首,如^w,表示匹配位於行首的w

$        //匹配行尾,如x$表示匹配x位於行尾的行,^insert$表示只包含insert的行

\        //加在特殊字元前去除特殊字元的特殊意義

^$        //匹配空白行

*        //匹配0或若干個字元,x*表示匹配0次或若干個連續的x,xx*表示匹配1個或多個連續的x,.*表示0或若干個字元,w.*s表示w開頭s結尾的任一字元串

上述字元僅用於搜尋串時才有特殊意義,例如/^[A-Z]/,表示匹配以大寫字母開頭的行;

[^A-Z]    //匹配除大寫字母之外的字元

{min,max\}    //指定範圍的匹配,前面的Regex至少重複min次,至多max次

\(...\)       //儲存匹配的字串,將小括弧中匹配的字串儲存到下一個寄存器中(1-9)

[tT]    //匹配小寫或大寫t

[a-z]    //匹配任意小寫字母

[a-zA-Z]    //匹配小寫或大寫字母

[^字元表]    //匹配任一不在字元表中的字元

 

cut

cut -c1- a    //把a檔案中每一行從第一個字元到最後最後一次字元的結果析取出來

cut -c1-5 a    //把a檔案中每一行從第一個字元到第5個字元的結果析取出來

cut -d: -f1 /etc/shadow    //把shadow檔案中每一行以:分割的第一段的結果析取出來,即是使用者名稱

cut -d: -f1,6 /etc/passwd    //把passwd檔案中的每一行以:分割的第一段和第六段的結果析取出來,即是使用者名稱和使用者宿主目錄

cut -f1 a    //這裡不加-d參數表示cut預設用的定位字元作為分隔字元

\t    //表示定位字元

 

paste    //合并行

paste -d ‘+‘ a b   //將a和b檔案中的每一行都合并顯示,以+號分割,不加-d參數預設以定位字元分割

paste -s a    //將a檔案中的所有行合并為一行

 

sed    //流編輯器,編輯資料用

sed command file

sed ‘s/unix/UNIX/g‘ intro    //將intro檔案中的unix全部替換為UNIX並在螢幕上列印出來,不改變原檔案(s是替換作用,g是全域選項,保證一行中有多個unix都能被替換)

sed -n ‘1,2p‘ /etc/passwd    //只顯示passwd檔案的前兩行

sed -n ‘/root/p‘ /etc/passwd    //只顯示passwd檔案中包含root字串的行

sed -n ‘1,2d‘ /etc/passwd    //刪除passwd檔案中1和2行

sed ‘5d’ a    //刪除a檔案的第5行

sed ‘/[Tt]est/d‘ a //刪除a檔案中包含Test或test的行

sed ‘s/...//‘ a //刪除a檔案中每一行的前3個字元

sed ‘s/...$//‘ a //刪除a檔案中每一行的後3個字元


tr    //用於轉換來自標準輸入的字元,不改變原檔案

tr from-chars to-chars

tr e x < /etc/passwd

tr ‘[a-z]‘ ‘[A-Z]‘ < /etc/passwd    //將passwd檔案中小寫字母轉為大寫字母

常用ASCII字元的八進位值

響鈴 7

退格 10

定位字元 11

新行 12

換行 12

換頁 14

斷行符號 15

轉義 33


tr -s ‘ ‘ ‘ ‘ a    //壓縮掉a檔案中多餘的空格

tr -d ‘ ’ a    //刪除掉a中的空格

tr ‘X‘ ‘x‘    //所有大寫轉為小寫

tr ‘()‘ ‘{}‘    //所有左小括弧轉為左大括弧,右小括弧轉為右大括弧

tr ‘[A-Z]‘ ‘[N-ZA-M]‘ //所有A-M的字元分別轉換為N-Z,N-Z的字元分別轉為A-M

tr -d ‘[0-9]‘    //刪除所有數字

grep

grep pattern files
grep -i     //不區分大小寫

grep -v    //反選,不顯示包括模式的行

grep -l    //顯示包含模式的檔案名稱

grep -n    //檔案中符合指定模式的行顯示行號

sort    //排序,預設按編碼方式升序排列

sort -u    //去除重複的行

sort -r    //反序排序

sort -o    //後面跟檔案名稱,輸出定向到檔案

sort -t: -k 3 /etc/passwd    //按使用者ID來排序

uniq    //去除連續的重複行

uniq input-files out-files

uniq -d    //顯示重複的行

sort /etc/passwd |cut -f1 -d: |uniq -d    //尋找重複的使用者名稱

awk,perl

who|cut -f1 -d‘ ‘  |grep ‘\w\{4,\}‘    //尋找系統中至少4個字元的已登入使用者

cut -d: -f 1,3 /etc/passwd | grep ‘[0-9]\{3,\}‘ | cut -d: -f 1    //查出系統中使用者標識號大於99的使用者

cut -d: -f 1,3 /etc/passwd |grep ‘[0-9]\{3,\}‘ | wc -l    //統計大於99的使用者數

ls -l | sort -nrk 5    //按檔案大小降序列出目錄下的所有檔案

本文出自 “On The Way” 部落格,請務必保留此出處http://weiwang.blog.51cto.com/2609379/1618314

unix shell編程摘記系列(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.