grep
* | 前一個字符匹配0次或者任意多次 |
grep “aa*” test.txt 匹配有包含1個a的行 | |
. | 匹配除了換行符外任意一個字符 |
grep “a.b” test.txt a開頭,b結尾,中間字符任意 | |
^ | 匹配行首 |
grep “^a” test.txt 行首爲a開頭 grep -n “^$” 匹配空行,-n顯示行號 | |
$ | 匹配行尾 |
grep “$b” test.txt 行尾爲b | |
[] | 匹配括號中指定的任意一個字符,只匹配一個字符 |
grep “[0-9]” test.txt grep "[a-zA-Z]" test.txt | |
[^] | 相對於[]取反 |
grep “[^0-9]” test.txt | |
\ | 轉義符,取消特殊符號的含義 |
\{n\} | 表示其前面的字符恰好出現n次 |
grep “[0-9]\{2\}” 0-9的字符恰好出現2次的 grep “[1][3-8][0-9]\{9}” 匹配手機號碼 | |
\{n,\} | 表示其前面的字符出現不小於n次 |
grep “[0-9]\{2,\}” 0-9的字符出現不小於2次的 | |
\{n,m\} | 表示其前面的字符至少出現n次,最多出現m次 |
grep “[0-9]\{2,3\}” |
-n顯示行號
-v取反
字符截取命令cut
cut [選項] 文件名
-f列號
-d分隔符:
cut出第2列 , 默認分隔符是tab鍵
cut -d ":" -f 1,3 /etc/passwd
以:爲分隔符,截取第1,3列
cat /etc/passwd | grep "/bin/bash" | grep -v root | cut -d ":" -f 1
提取系統中所有普通用戶的用戶名
printf命令
print ‘輸出類型輸出格式’輸出內容
輸出類型
%ns:輸出字符串,n代表幾個字符
%ni:輸出正數,n代表幾個數字
$m.nf:輸出浮點數,m和n是數字,分別代表整數位和小數位
輸出格式:
\n換行
\r回車,Enter鍵
\t水平輸出退格鍵,Tab鍵
\v垂直輸出退格鍵,Tab鍵
\a輸出警告音
\b輸出空格鍵,Backspace鍵
\f清除屏幕
printf '%s' $(cat cut.txt) 原始無格式輸出
printf '%s\t %s\t %s\t %s\t \n' $(cat cut.txt)定義格式輸出
awk命令
awk ‘條件1{動作1} 條件2{動作2}...’文件名
條件:
x>10判斷變量x是否大於10
x>=10
x<=10
動作:
格式化輸出
流程控制語句
#df -h | awk ‘{printf $1 “\t” $6 “\n”}’
#df -h | grep "/dev/sda3" | awk '{printf $5}' | cut -d "%" -f 1
動作 BEGIN
所有數據讀取之前,執行,再執行後面數據
內置變量FS
定義分隔符
# awk 'BEGIN{FS=":"}{printf $1 "\t" $3 "\n"}' /etc/passwd
動作END
所有數據處理完之後執行
# awk 'END{print "this end"}{print $1 "\t" $4}' cut.txt
print = printf \n print會自動換行
sed命令流編輯器,可對命令結果進行處理
sed [選項]‘動作’文件名
-n只輸出sed命令處理過的行
-e允許對輸出數據應用多條sed命令編輯
-i用sed修改的結果直接修改讀取數據的文件,而不是屏幕輸出
動作
a\:追加,在當前行後添加一行或多行。添加多行時,除最後一行外,每行末尾需要用 \ 代表數據未完結
c\:行替換,用c後面的字符串替換原數據行
i\:插入,在當前行前插入一行或多行
d:刪除,刪除指定行
p:打印,輸出指定行
s:字串替換,用一個字符串替換另一個字符串s/舊字符串/新字符串/g
#sed -n ‘2p’student.txt
處理第2行輸出
#sed '2,3d' students.txt
刪除第2-3行
#sed '2a nihao\' students.txt
在第2行之後插入新行,內容爲nihao
# sed '2c nonono' students.txt
替換第2行
#sed '2s/91/99/g' students.txt
把第2行的字符串91替換爲99
字符處理命令
排序命令sort
sort [選項] 文件名
-f忽略大小寫
-n以數值型進行排序,默認使用字符串排序
-r反向排序
-t指定分隔符,默認分隔符是製表符
-k n[,m]安裝指定的字段範圍排序
#sort -n -t ":" -k 3,3 /etc/passwd
按照uid從小打到排序
統計命令wc
wc [選項] 文件名
-l只統計行數
-w只統計單詞數
-m只統計字符數