Linux命令三劍客

linux命令的進階學習,確定離不開傳說中的linux命令三劍客——grep(global search regular expression and print out the line)、awk(取了三位創始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符)、sed(stream editor(流式編輯器)html

本文旨在記錄命令的基本知識,關於實際的應用,可參考【Linux命令】在當前目錄下查找出現特定字符串的文件位置信息linux


grep


一句話歸納

grep 命令用於查找文件裏符合條件的字符串正則表達式

語法
grep [-abcEFGhHilLnqrsvVwxy][-A<顯示行數>][-B<顯示列數>][-C<顯示列數>][-d<進行動做>][-e<範本樣式>][-f<範本文件>][--help][範本樣式][文件或目錄...]
參數
  • -a 或 --text
    不要忽略二進制的數據。express

  • -A<顯示行數> 或 --after-context=<顯示行數> :
    除了顯示符合範本樣式的那一列以外,並顯示該行以後的內容。編輯器

  • -b 或 --byte-offset
    在顯示符合樣式的那一行以前,標示出該行第一個字符的編號。函數

  • -B<顯示行數> 或 --before-context=<顯示行數>
    除了顯示符合樣式的那一行以外,並顯示該行以前的內容。工具

  • -c 或 --count
    計算符合樣式的列數。學習

  • -C<顯示行數> 或 --context=<顯示行數>或-<顯示行數>
    除了顯示符合樣式的那一行以外,並顯示該行以前後的內容。ui

  • -d <動做> 或 --directories=<動做>
    當指定要查找的是目錄而非文件時,必須使用這項參數,不然grep指令將回報信息並中止動做。unix

  • -e<範本樣式> 或 --regexp=<範本樣式>
    指定字符串作爲查找文件內容的樣式。

  • -E 或 --extended-regexp
    將樣式爲延伸的正則表達式來使用。

  • -f<規則文件> 或 --file=<規則文件>
    指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式爲每行一個規則樣式。

  • -F 或 --fixed-regexp
    將樣式視爲固定字符串的列表。

  • -G 或 --basic-regexp
    將樣式視爲普通的表示法來使用。

  • -h 或 --no-filename
    在顯示符合樣式的那一行以前,不標示該行所屬的文件名稱。

  • -H 或 --with-filename
    在顯示符合樣式的那一行以前,表示該行所屬的文件名稱。

  • -i 或 --ignore-case
    忽略字符大小寫的差異。

  • -l 或 --file-with-matches
    列出文件內容符合指定的樣式的文件名稱。

  • -L 或 --files-without-match
    列出文件內容不符合指定的樣式的文件名稱。

  • -n 或 --line-number
    在顯示符合樣式的那一行以前,標示出該行的列數編號。

  • -o 或 --only-matching
    只顯示匹配PATTERN 部分。

  • -q 或 --quiet或--silent
    不顯示任何信息。

  • -r 或 --recursive
    此參數的效果和指定"-d recurse"參數相同。

  • -s 或 --no-messages
    不顯示錯誤信息。

  • -v 或 --invert-match
    顯示不包含匹配文本的全部行。

  • -V 或 --version
    顯示版本信息。

  • -w 或 --word-regexp
    只顯示全字符合的列。

  • -x --line-regexp
    只顯示全列符合的列。

  • -y :
    此參數的效果和指定"-i"參數相同。


awk


一句話歸納

awk 是一個處理文本文件的的強大工具,主要用於文本分析

語法
awk [選項參數] 'script' var=value file(s)
或
awk [選項參數] -f scriptfile var=value file(s)
參數
  • -F fs or --field-separator fs
    指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達式,如-F:。

  • -v var=value or --asign var=value
    賦值一個用戶定義變量。

  • -f scripfile or --file scriptfile
    從腳本文件中讀取awk命令。

  • -mf nnn and -mr nnn
    對nnn值設置內在限制,-mf選項限制分配給nnn的最大塊數目;-mr選項限制記錄的最大數目。這兩個功能是Bell實驗室版awk的擴展功能,在標準awk中不適用。

  • -W compact or --compat, -W traditional or --traditional
    在兼容模式下運行awk。因此gawk的行爲和標準的awk徹底同樣,全部的awk擴展都被忽略。

  • -W copyleft or --copyleft, -W copyright or --copyright
    打印簡短的版權信息。

  • -W help or --help, -W usage or --usage
    打印所有awk選項和每一個選項的簡短說明。

  • -W lint or --lint
    打印不能向傳統unix平臺移植的結構的警告。

  • -W lint-old or --lint-old
    打印關於不能向傳統unix平臺移植的結構的警告。

  • -W posix
    打開兼容模式。但有如下限制,不識別:/x、函數關鍵字、func、換碼序列以及當fs是一個空格時,將新行做爲一個域分隔符;操做符=不能代替=;fflush無效。

  • -W re-interval or --re-inerval
    容許間隔正則表達式的使用,參考(grep中的Posix字符類),如括號表達式[[:alpha:]]。

  • -W source program-text or --source program-text
    使用program-text做爲源代碼,可與-f命令混用。

  • -W version or --version
    打印bug報告信息的版本。


sed


一句話歸納

sed 是利用腳本處理、編輯文本文件

語法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
參數
  • -e [script] 或--expression=[script]
    以選項中指定的script來處理輸入的文本文件。

  • -f [script文件]或--file=[script文件]
    以選項中指定的script文件來處理輸入的文本文件。

  • -h或--help
    顯示幫助。

  • -n或--quiet或--silent
    僅顯示script處理後的結果。

  • -V或--version 顯示版本信息。

相關文章
相關標籤/搜索