Linux三劍客命令詳解

linux三劍客命令詳解

sed命令

sed爲流編輯器,用程序的的方式編輯文本,sed會一次處理一行內容

sed用法:
sed [參數] [動作] 文件
如:sed -s ‘{/hello/a/}’ 1.txt

sed選項和參數:
-n:使用安靜模式,一般列出的數據都會顯示到終端上,加上-n選項後只有被處理的數據會顯示到終端上
-e:直接在命令行模式上進行sed動作的編輯
-f:直接將sed的動作寫到文件內,-f filename 可以運行filename內的sed動作
-r:sed的動作開啓延申正則
-i:直接修改讀取的文件內容,而不是輸出到終端

-a:新增,a的後面可以接字符串,而這些字符串在新的一行出現(當前的下一行)
-c:取代,c的後面可以接字符串,這些字符串可以取代n1,n2之間的行
-d:刪除,d的後面通常不跟任何東西
-i:插入,i的後面可以跟字符串,而這些字符串會在新的一行出現(當前的上一行)
-p:列印,將某個選擇的數據印出,通常p會與參數sed -n 一起運行
-s:取代,可以直接進行取代的工作,通常這個s動作可以搭配正則

如果換行添加文本
echo -e ‘aaa\nbbb’

實戰:
1.修改文件內容
sed -i ‘s/hello/a/’ 1.txt
2.替換文件中的全部內容
sed -i ‘s/d/123234/g’ 1.txt

awk命令數據文本提取

awk是以文件的一行爲處理單位的。awk每接收文件的一行,然後執行相應的命令,來處理文本。
用法:
awk ‘{執行動作} 條件’
特殊要點: printf #格式化輸出,不自動換行
print #打印出內容,默認換行
%s #代表字符串
\t #製表符
\n #換行符
提取問題的特殊要點:
NR #行號
$1 #代表第一列
$2 #代表第二列
$0 #代表所有區域
$FILENAME #awk瀏覽的文件名
$NF #代表最後一列
參數:
-F:指定區分隔符,-F ‘:’

實戰:
1.取後五行
ll -rt | tail -n 5 | awk ‘{print $2}’
2.指定分隔符
cat /etc/passwd | awk -F “:” ‘{print $1"\t"$7}’
3.指定規格
cat /etc/passwd | awk -F ‘:’ ‘BEGIN{print “name shell”} {print $1 $7} END {print “blue /bin/bash”}’
4.定義變量賦值運算
awk ‘BEGIN{sum=0} {sum+=$2} END {print sum}’

grep命令

過濾指定關鍵詞
用法:
grep [選項] 篩選文本 文件
參數:
-c:表示輸出符合要求的行數
-i:忽略大小寫
-n:表示輸出符合要求的行及行號
-v:表示取反,打印不符合要求的行
-r:便利而所有子目錄
-A:打印符合要求的下面n行數據
-B:打印符合要求的上面n行數據
-C:打印符合要求的上下n行數據
實戰:
1.過濾掉所有空行和以#開頭的行
grep -v ‘^#’ init | grep -v ‘^$’
2.打印出不以英文字開頭的行
grep ‘[a-zA-Z]’ test.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章