Linux命令簡單操作

來源:互聯網
上載者:User

標籤:use   第一個   .com   array   文本   集合   單行   讀取   for   

一、 awk

命令格式:

    awk ‘BEGIN{commands} pattern {commands} END{commands}’file

工作方式:

    1.執行BEGIN{commands}語句塊中語句,可選的語句塊

    2.從檔案或者stdin中讀取一行,然後執行{commands},重複這個過程,直到檔案全部被讀取完

    3.當讀至輸入資料流末尾是,執行END{commands}語句塊

特殊變數:

    FILENAME:awk瀏覽的檔案名稱

    NR:記錄數量,執行過程中對應於當前行號

    NF:欄位數量,執行過程中對應於當前行的欄位數

    FS:設定分隔字元,命令列 -F

    $0:執行過程中當前行的常值內容

    $1:第一個欄位的常值內容

    $2:第二個欄位的常值內容,以此類推

print&printf列印輸出的函數

  print的參數是以逗號進行分隔時,參數列印時則以空格作為定界符,awk的print語句中,雙引號是被當做拼接操作符使用的  

  printf函數,其用法和c語言中printf基本相似,可以格式化字串,輸出複雜時,printf更加好用,代碼更易懂。

流程式控制制語句

  if(condition)else{}

  while(){}

  do{}while()

  for(;;)等 

內建字串控制函數:

    1.length(string):返回字串的長度

    2.index(string,search_string):返回search_string在字串中出現的位置

    3.substr(string,start_pos,end-pos):在字串中從start-pos開始到end-pos位置,產生子串

   4.split(string,array,delimiter):用delimiter產生一個字串列表,並將該列表存入數組,delimiter預設使用當前FS值。

   5.sub(regex,replace_str,string):將Regex匹配到的第一處內容替換成replace_str

   6.gsub(regex,replace_str,string):替換Regex匹配到所有的內容

   7.match(regex,string):檢測Regex是否能夠匹配字串

應用:

  1.從檔案或者stdin中讀取一行,迴圈執行{commands},直到讀完

  echo "aXbX cXdXe a;b;cX d;e" | awk -F"[X|;| ]+" ‘BEGIN{print "begin:"} {for(i=1;i<=NF;++i){++S[$i];printf("$%d=%s\n",i,$i)}} END {print "end:"; for(i in S) print i, S[i]}‘

  2.split函數

  

二、sed

sed文法格式:

  sed[options ]‘command’ file(s)

sed常用選項:

    -n:只有經過sed 特殊處理的那一行(或者動作)才會被列出來

  -e:組合多個sed命令

  -f:執行 filename 內的sed 動作

  -r:sed 的動作支援的是延伸型正規標記法的文法

  -i:直接修改讀取的檔案內容,而不是螢幕輸出

sed常用命令:

  a:追加  sed ‘a xxx’ file 每一行後面都追加xxxx    sed‘$a xxx’file 最後一行追加

  i:插入  sed ‘i xxx’file 每一行前面插入xxx  

  c:取代  sed ‘2c xxx’file 第二行用xxx取代

  d:刪除  sed ‘/^$/d’file  刪除空白行   sed ‘1,5d’file 刪除第1-5行

  s:替換  sed ‘s/pattern/replace_str/g’file   /g意味sed會替換每一處匹配,否則是第一處匹配

  &:標記匹配樣式的字串,可以在替換字串時使用已匹配的內容

  \1 or \2:第1個or第2個匹配的字串

應用:

  1.&:標記匹配樣式的字串,可以在替換字串時使用已匹配的內容

  2.\1 or \2:第1個or第2個匹配的字串,\(pattern\)用於匹配子串,模式被包括在使用斜線轉義過的()中

  3.使用管道組合多個sed命令

  sed  ‘expression’ | sed ‘expression’

  sed ‘expression;expressiong’

  sed -e ‘expression’ -e ‘expression’

三、tr---translate轉換

tr文法格式:

  tr [options] set1 set2 

  原理:通過集合映射的概念,將set1映射成set2

-常用參數

  -d:指定需要被刪除的字元集合

-c:使用集合的補集

  tr –c set1 set2  使用set1的補集,即不包含set1的所有字元

 

-s:壓縮輸入中重複的字元,將連續重複的字元合并為一個字元

應用:

1.加密解密 

2.數字檔案相加

  將檔案中的\n轉換成+,利用$[ operation ]執行算術運算

3.tr集合列表

  tr [:class:]  [:class:]

   alnum:字母和數字    alpha:字母

  digit:數字  cntrl:控制(非列印)字元

  lower:小寫字母  upper:大寫字母

  graph:圖形字元  punct:標點符號

  space:空白字元  xdigit:十六進位字元

四、find

find:沿著檔案階層向下遍曆,匹配合格檔案,執行相應操作

常用參數

  -print:列印出批判檔案的檔案名稱(路徑),\n是輸出檔案的分割符

  -print0:\0(null)作為輸出檔案的分割符,xargs -0

  -name:檔案名稱必需匹配的字串,\(-name“xx”-o -name“xx”\) 匹配多個字串

  -iname:忽略字母大小寫

  -path:匹配檔案路徑

  -type:檔案類型過濾

  -size:檔案大小搜尋

  -delete:刪除尋找到的檔案

  -perm:匹配具有特定許可權值的檔案

  -newer:指定一個用於比較時間戳記的參考檔案,匹配出參考檔案更新的所有檔案

  -user:制定某使用者檔案

  -exec:藉助-exec與其他命令進行結合,命令格式為:command {} \; 注意{}和\之間的空格

  -ok:和-exec的作用相同,只是在安全模式下進行操作,按y鍵yes,按n鍵no

  -atime:訪問時間,使用者最近一次訪問檔案的時間,單位:天  -amin 單位:分

  -mtime:修改時間,檔案內容最後一次被修改的時間,單位:天 –mmin 單位:分

  -ctime:檔案(例如許可權或所有權)最後一次改變的時間,單位:天 –cmin單位:分

   -表示小於(最近) +表示大於(超過) 沒有- 或+ 表示數字當天

  !:表示不匹配規則的檔案 

應用:

  1.-exec:藉助-exec與其他命令進行結合,命令格式為:command {} \; 注意{}和\之間的空格

 

五、xargs

xargs:構造命令列參數並運行命令

同管道的區別

   管道是實現將前面的標準輸出作為後面的標準輸入

    xargs是實現將標準輸入作為命令的參數

   xargs的預設命令是echo,預設定界符是空格(空白字元)

    這意味著傳遞給xargs的輸入如果包含換行和空白字元,通過xargs的處理,換行和空白將被空格取代,因此xargs是構建單行命令的重要組件之一

 常用參數

  -n number :多行輸出,多個參數

  -d X:自訂定界符

  -I | -i replace_str:在xargs擴充時replace_str會被替換為從標準輸入的每一行參數

  -L number :標準輸入讀取非空number行作為參數,-L 1 等價於-I

  -p:詢問是否運行

  -t:啟用跟蹤方式

  -s size:設定命令列的最大位元組數

  -x:如果有任何 命令列大於 -s Size 標誌指定的位元組數,停止運行 xargs 命令

應用:

  1.-n number:設定命令的參數個數

2.-I replace_str:命令參數替換

3.xargs和find算是一對死黨

find的-print0和xargs的-0

ps:只要是把find的輸出結果作為xargs的輸入,就必須將-print0與find結合使用,以字元null(\0)來分割,同時,xargs -0將null作為定界符

 

 

 

Linux命令簡單操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.