題:只看ett.txt文件(100行)內第20行到第30行的內容 ...
題:只看ett.txt文件(100行)內第20行到第30行的內容
解答:squence==seq序列 生成ett文件 [root@tan data]# seq 100 >ett.txt [root@tan data]# cat ett.txt
生成從1開始的10個數【1-10】,預設間隔為1: [root@tan data]#seq 10 生成【3-10】: [root@tan data]# seq 3 10 【1-10】公差為2的數 [root@tan data]# seq 1 2 10 【1-10】公差為的數 [root@tan data]# seq 1 3 10
[root@tan data]# head -30 ett.txt|tail -11 前30行裡面的後11行(太low) [root@tan data]# sed -n '20,30'p ett.txt 這個命令更有效率,要記住 [root@tan data]# awk '{if(NR<31 && NR>19) printf $0"\n"}' ett.txt [root@tan data]# awk '19<NR && NR<31' ett.txt
head 頭,頭部 讀取文件的前n行,預設前10行,-n 數字,習慣-5,忽略-n sed【三劍客老二】 stream editor 流編輯器,實現對文件的增刪改查替換
選項 | 功能 |
-e | 允許多項編輯 |
-f | 後接sed腳本的文件名 |
-n | 取消預設輸出 |
-i | 修改文件內容 |
g | 與s聯合使用時,表示對當前行全局匹配替換 |
s | 常說的查找並替換,用一個字元串替換成另一個 |
sed '20,30p' ett.txt 不加-n會全部列印出來 -n作用:取消預設輸出,按照規則列印想要的內容【就是我用sed時,不要都給我輸出出來,我要啥,你給我啥】 p:是print,列印 列印最後一行: [root@tan data]# sed -n '$'p ett.txt $是結尾的意思
'20,30':引號一定要加 列印一行: [root@tan data]# sed -n '20'p ett.txt
awk【三劍客老大】 過濾、輸出內容,本身還是一門語言。NR:行號 [root@tan data]# awk 'NR==31' ett.txt
== :等於,表判斷 && :意思是並且,兩邊同時成立 = :賦值 grep【三劍客老三】過濾需要的內容,-v排除內容,列子grep -v oldboy test.txt #Context Control: -B【brfore】 除了顯示匹配的一行之外,並顯示該行之前的num行 -A【after】 除了顯示匹配的一行之外,並顯示該行後的num行 -C【Context,上下文即前後】 除了顯示匹配的一行之外,並顯示該行之前後各num行 [root@tan data]# grep 25 -C 5 ett.txt [root@tan data]# grep 20 -A 10 ett.txt [root@tan data]# grep 30 -B 10 ett.txt