Linux三劍客-常用命令


Linux三劍客:grep, awk, sed。

   Linux命令搜索及查看-> 點擊這里

  1.  grep 命令 :強大的文本’搜索’工具

    1. grep -n 'word' file_name   在file_name文件中找到word所在的所有行並顯示。-n 為顯示行號
    2. grep 'w[ea]ll' file_name     在file_name文件中找到wall 或者是well 所在的所有行並顯示
    3. grep 'w[^e]ll' file_name     在file_name文件中找到”非well” 所在的所有行並顯示
    4. grep '^The' file_name       在file_name文件中找到以The開頭的所有行並顯示
    5. grep 'g..le' file_name        在file_name文件中找到如goole/gkkle..的所有行並顯示
    6. grep 'g*g' file_name         在file_name文件中找到g/gg/ggg等的所有行並顯示(*代表重復前一個字符無窮次)
  2. sed :實現數據的增加,刪除,替換,選取等(按順序逐行讀取文件,不會影響源文件)

    1. 格式:sed [option] [command] [file]

      常用命令:

              a   ∶新增
              c   ∶取代
              d   ∶刪除
               i   ∶插入
               p  ∶打印
               s  ∶取代

    2. sed ’1d' ghostwu.com     d代表刪除 d前面的數字代表刪除第一行,該命令不會修改文件本身
    3. sed '$d' ghostwu.txt       刪除最后一行,$代表最后一行
    4. sed '1,2d' ghostwu.txt    刪除第一行到第二行
    5. sed '2,$d' ghostwu.txt    刪除第二行到最后一行
    6. sed -n '/you/p' ghostwu.txt     查找包含'you'的行,/you/ 這是正則表達式, p是打印,要跟n結合起來用
    7. sed '1,2a 你好啊' ghostwu.txt   在第一行和第二行的后面,增加一行“你好啊"
    8. sed '1a 你好啊\n很高興認識你' ghostwu.txt    在第一行的后面,增加2行數據,\n 換行
    9. sed '1c 你好啊' ghostwu.txt      將第一行數據替換為“你好啊"
    10. sed -i '$a 你好啊' ghostwu.txt   在最后一行新增“你好啊",該命令會修改文件本身
  3. awk : 以字段為單位進行處理(其實就是把一行的數據分割,然后進行處理)

    1. 格式:awk  [options]  '{pattern + action}'  {filenames}
    2. pattern:模式,即條件,可理解為'找誰'
    3. action:動作,可理解為'干啥'
    4. awk -F ":" 'NR>=2 && NR<=6{print NR,$1}' /etc/passwd2 

      -F 指定分隔符為冒號,相當於以“:”為菜刀,進行字段的切割。
      NR>=2 && NR<=6:這部分表示模式,是一個條件,表示取第2行到第6行。
      {print NR,$1}:這部分表示動作,表示要輸出NR行號和$1第一列。

    5. awk 'BEGIN {count=0;print "[start] user count is ",count} {count=count+1;print $0} END{print "[end] user count is ",count}' passwd
        BEGIN 指定了處理文本之前需要執行的操作
        END 指定了處理所有行之后需要執行的操作
    6. awk 'NR>22 && NR<31' /etc/services  取出文件/etc/services的23~30行
    7. awk -F "[ /]+" '$1~/^(ssh)$|^(http)$|^(https)$|^(mysql)$|^(ftp)$/{print $1,$2}' /etc/services |sort|uniq  取出常用服務端口號
    8. 內置變量
      $0 當前行整行
      $1 當前行被分割符划分成N段,$1表示第一個字段,$2標識第二個字段,$NF當前行被分割后的最后一列(字段)
      NF 當前行被分割符划分成8段 NF=8

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM