grep
global search regular expression(RE) and print out the line全面搜索正則表達式並把行打印出來 ,搜索內容是文本。
參數 | 說明 | 舉例 |
---|---|---|
-a | 不忽略二進制數據 | |
-A<顯示列數i> | 顯示查到數據之後的行數i數據 | grep -A2 “;$” |
-b | 顯示符合範本樣式的一行外,顯示改行之前的內容 | |
-c | 計算符合範本樣式的列數 | |
-C<顯示列數> | 除了顯示內容之外,顯示該列前後的內容 | |
-d<進行動作> | 當查找的內容爲目錄而非文件時 必須使用該參數 | |
-e<範本樣式> | 指定字符串爲查找文件內容的範本樣式 | |
-E | 使用擴展正則表達式 | |
-f<範本文件> | 指定範本文件,其內容有一個或多個範本樣式,讓grep查找符合範本條件的文件內容,格式爲每一列的範本樣式 | |
-F | 將範本樣式視爲固定字符串的列表 | |
-G | 將範本樣式視爲普通的表示法來使用 | |
-h | 在顯示符合範本樣式的那一列之前,不標示該列所屬的文件名稱 | |
-H | 在顯示符合範本樣式的那一列之前,標示該列的文件名稱 | |
-i | 忽略字符大小寫的差別 | |
-l | 列出文件內容符合指定的範本樣式的文件名稱 | |
-L | 列出文件內容不符合指定的範本樣式的文件名稱 | |
-n | 顯示符合範本樣式的那一列之前,表示出該列的編號 | |
-q | 不顯示任何信息 | |
-r/R | 此參數的效果和指定“-d recurse”參數相同 | |
-s | 不顯示錯誤信息 | |
-v | 翻轉查找 | |
-w | 只顯示全字符符合的列 | |
-x | 只顯示全列符合的列 | |
-y | 參數效果與-i相同 | |
-o | 只輸出文件中匹配到的部分 |
sed
stream editor文本流編輯,sed是一個非交互式的面向字符流的編輯器。
sed使用參數:
參數 | 說明 |
---|---|
-n | 一般所有數據會輸出到終端,現在只有經過一行會出現 |
-e | 直接在命令列模式上進行sed的動作編輯 |
-f | 直接將sed的動作寫入一個文件內 |
-r | sed動作支持的是延伸性正規表示法的語法 |
-i | 直接修改該讀取的文件內容,而不是輸出到終端 |
動作:
參數 | 說明 | 使用 |
---|---|---|
a | 新增 | sed ‘2a Drink tea’ |
c | 取代 | sed ‘2,5c No 2-5 number’ |
d | 刪除 | sed ‘2,5d’ |
i | 插入 | sed ‘2i Drink tea’ |
p | 列印 | sed ‘2,5p’ |
s | 取代 | sed ‘s/old/new/p’ |
其他使用
- 數據的搜索和顯示
nl testFile | sed ‘/searchStr/p’ - 數據的搜索並刪除
nl testFile | sed ‘/searchStr/d’ - 數據搜索並執行命令
nl testFile | sed ‘/searchStr/{ s/searchStr/replaceStr/;p}’ - 數據搜索並執行命令並退出
nl testFile | sed ‘/searchStr/{ s/searchStr/replaceStr/;p;q}’ - 數據的搜索並替換
sed ‘s/searchStr/replaceStr/g’ - 多點編輯
刪除並查找 ,中間命令使用”-e”連接
nl testFile | sed -e ‘3.5d’ -e ‘s/searchStr/replaceStr/’
awk
與sed相同都是對文件進行逐行處理。
強大的文本分析工具 ,相對於grep的查找 ,sed的編輯 ,awk在堆數據分析並生成報告是,顯的尤爲強大 ,awk就是把文件逐行讀入 ,以空格爲默認分隔符,之後將切開的部分在進行各種分析處理。
一般使用
awk -F: ‘{print “hello”}’
添加列名稱
last -5 | awk -F: ‘BEGIN {print “name \t,shell”} {print $1} END {print “blue\t,/bin/nosh”}’
sub函數
awk下gsub函數
sub、gsub函數返回的是執行替換或其他匹配操作的次數而不是改行執行結果。這裏的sub/gsub函數中傳入參數相當於sed命令的字符串端的內容以及寫法。
awk內置的一些變量
變量名稱 | 說明 |
---|---|
ARGC | 命令行參數個數 |
ARGV | 命令行參數排列 |
ENVIRON | 支持隊列中系統環境變量的使用 |
FILENAME | awk瀏覽的文件名 |
FRN | 瀏覽文件的記錄數 |
FS | 設置輸入域分隔符 ,等價於命令行 -F選項 |
NF | 瀏覽記錄的域的個數 |
NR | 已讀的記錄數 |
OFS | 輸出域分隔符 |
ORS | 輸出記錄分隔符 |
RS | 控制記錄分隔符 |
也可使用printf()進行打印輸出,
awk編程:
可以將awk作爲可執行文件來編輯 ,執行。
awk文件中的語法:
- 變量和賦值 :不需要聲明 ,有初始值,但仍需初始化
- 條件語句:與c格式相似 。如:
if (expression) {
statement;
statement;
... ...
}
if (expression) {
statement;
} else {
statement2;
}
if (expression) {
statement1;
} else if (expression1) {
statement2;
} else {
statement3;
}
- 循環語句
同樣與c語言一致 - 數組
下標可以爲數字和字符串,同樣不需要聲明,不需要初始化 ,會存儲在hash表中 ,並不會順序存儲。相當於oc字典
The GNU Awk User’s Guide
cut命令
文件內容查看
:該命令有兩項功能,其一是用來顯示文件的內容,它依次讀取由參數file所指 明的文件,將它們的內容輸出到標準輸出上;其二是連接兩個或多個文件,如cut fl f2 > f3將把文件fl和幾的內容合併起來,然後通過輸出重定向符“>”的作用,將它們放入文件f3中。
-b:僅顯示行中指定直接範圍的內容;
-c:僅顯示行中指定範圍的字符;
-d:指定字段的分隔符,默認的字段分隔符爲“TAB”;
-f:顯示指定字段的內容;
-n:與“-b”選項連用,不分割多字節字符;
--complement:補足被選擇的字節、字符或字段;
--out-delimiter=<字段分隔符>:指定輸出內容是的字段分割符;
--help:顯示指令的幫助信息;
--version:顯示指令的版本信息。