文章目錄
比較文件內容
比較file1、file2文件內容不同.
diff -c file1 file2 | colordiff
grep、sed、awk
-
grep
使用正則表達式搜索文本,並把匹配的行打印出來.
-r:遞歸查找
# 遞歸查找 grep -r *.conf *
-n:顯示行號
# 過濾符合條件的行,顯示行號 grep -rn *.conf *
-v:反向匹配
-E:正則匹配# 過濾文件的註釋和空行 grep -Ev '^#|^$' elasticsearch.yml
-
正則表達式
-
正則表達式單字符
-
正則表達式其他符號
-
邊界字符 、頭尾字符
^ 字符,頭字符,放在一串字母前邊,代表以此開頭. grep '^root' passwd $ 符號,如false$,代表以false字符結束 ^$ 代表空行,grep '^$' passwd
-
元字符
w: 匹配任何字符類字符,包括下劃線,相當於([a-zA-Z0-9_]) W: 匹配所有非字符類字符,相當於([^a-zA-Z0-9_]) b: 代表單詞分割. 如,grep '\bx\b' passwd,可以將單詞前後分隔的x字符選出來,但不會選擇單詞 中出現的x
-
多詞匹配
\*: 零次或多次匹配前面的字符或子表達式. 例子:grep 'se*' test.txt \+: 一次或多次匹配前面的字符或表達式. 例子:grep 'se\+' test.txt. 注意這裏+前面加反斜槓. ?: 零次或1此匹配前面的字符或表達式. 如:grep 'se\?' test.txt. 注意這裏?前面要加反斜槓. 括號使用: grep '\(se\)*' test.txt. 注意括號前面要加反斜槓. 指定重複次數: grep '[0-9]\{2,3\}' passwd
-
-
-
sed 行編輯器
處理時,把當前處理的行存儲在臨時緩衝區中,稱爲“模式空間”. 接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並沒有 改變,除非你使用重定向存儲輸出.
-
命令格式
sed [options] 'command' file(s) options選項: -e<script>或--expression=<script>:以選項中的指定的script來處理輸入的文本文件; -n或--quiet或——silent:僅顯示script處理後的結果;
-
p 打印相關的行
cat /etc/passwd | sed -n '10p' // 打印第10行內容 cat /etc/passwd | sed -n '10,20p' // 打印第10-20行內容 cat /etc/passwd | sed -n '10,20!p' // 不打印第10-20行內容 cat /etc/passwd | sed -n '10~2p' // 間隔行,打印出10,12,14... cat /etc/passwd | sed -n '/root/,/games/p' // 正則匹配行範圍 sed -n '/root/p' /etc/passwd // 打印匹配的行
-
a 在行後面增加內容
cat /etc/passwd | sed '2a***' // 第二行後增加*** cat /etc/passwd | sed '1,2a***' // 在行範圍後增加***
-
i 在行前面插入內容
-
c 把選定的行改爲新內容
cat /etc/passwd | sed '2c abcd' // 第二行後修改成abcd cat /etc/passwd | sed '1,2c abcd' // 範圍內行修改成abcd
-
d 刪除行
cat /etc/passwd | sed '2d' // 刪除第二行 cat /etc/passwd | sed '/root/d' // 刪除掉root行
-
s 替換
-
g表示全局替換
ifconfig bond0|sed -n ‘/inet /p’|sed ‘s/inet.//’ |sed ‘s/netmask.*//’ # 獲取某個網卡的ip地址
-
-