Liunx運維(三)-檔案過濾及內容編輯處理

Mrwhite86發表於2020-12-19

文件目錄:

一、cat:合併檔案或檢視檔案內容

二、tac:反向顯示檔案內容

三、more:分頁顯示檔案內容

四、less:分頁顯示檔案內容

五、head:顯示檔案頭部內容

六、tail:顯示檔案尾部內容

七、tailf:跟蹤日誌檔案

八、cut:從文字中提取一段文字並輸出

九、split:分割檔案

十、paste:合併檔案

十一、sort:文字排序

十二、join:按兩個檔案的相同欄位合併

十三、uniq:去除重複行

十四、wc:統計檔案的行數、單詞數或位元組數

十五、iconv:抓換檔案的編碼格式

十六、dos2unix:將DOS格式檔案轉換成UNIX格式

十七、diff:比較兩個檔案的不同

十八、vimdiff:視覺化比較工具

十九、rev:反向輸出檔案內容

二十、tr:替換或刪除字元

二十一:od:按不同進位制顯示檔案

二十二:tee:多重定向

二十三:vi/vim:純文字編輯器

---------------------------------------分割線:正文--------------------------------------------------------

一、cat:合併檔案或檢視檔案內容

1、cat=concatenate

2、 cat > test.txt <<EOF   - - - EOF    #生成文字,結尾EOF必須頂格編寫

 3、 cat > test.txt <<-EOF   - - - EOF    #生成文字,結尾EOF不必頂格編寫,但要table縮排(ctrl+v+i)

4、cat  test.txt   #檢視檔案內容

 5、cat -n test.txt #對檔案內容按行編號

 6、cat -b test.txt  #對檔案內容按行編號,且不對空行編號

 7、cat -E test.txt  #顯示檔案結尾隱藏的$符號

 8、cat -s test.txt #兩行以上的空格,只會顯示一行

 9、cat test.txt test2.txt #連線並顯示多個檔案

 

二、tac反向顯示檔案內容

1、tac -b test.txt  #反向顯示檔案內容

 

三、more:分頁顯示檔案內容

1、more test3.txt #滿屏顯示檔案內容,最後顯示內容的百分比

=

 2、more -20 test3.txt #定義顯示的行數

 3、more  +10 -10 test3.txt #+10,從指定的行開始顯示內容

 4、ls /etc| more -5 #分頁展示資料夾下的檔案

 

四、less:分頁顯示檔案內容

1、less -N test3.txt #滿屏顯示並顯示行號

 2、ls /etc|less #分頁檢視目錄下檔案內容

 3、less與more互動式子命令及說明

v:進入vi編輯介面

q:退出less/more

 

 

五、head:顯示檔案內容頭部

1、head test3.txt #預設顯示前10行

 2、head -3 test3.txt #顯示檔案的前n行

 3、head -c 10 /etc/passwd #顯示檔案前10個位元組

 

 4、head -1 /etc/passwd /etc/gshadow #顯示多個檔案頭部內容

 

六、tail:顯示檔案內部尾部

1、tail /etc/passwd #預設顯示尾部10行

 2、tail -n 5 /etc/passwd #顯示尾部5行

 3、tail -5 /etc/passwd #顯示尾部5行,簡潔寫法

 4、tail -f /opt/tools/elasticsearch-7.10.1/logs/elasticsearch.log #實時監控檔案變化

 5、tail -F 123.txt #實時監控,檔案不存在報錯,但是會等待檔案生成不退出命令

 

七、tailf:跟蹤日誌檔案

1、tailf /opt/tools/elasticsearch-7.10.1/logs/elasticsearch.log #預設跟蹤10行命令

2、tailf -5 /opt/tools/elasticsearch-7.10.1/logs/elasticsearch.log #指定跟蹤最後n行

 

 八、cut:從文字中提取一段文字並輸出

1、cut -b 3 test4.txt #只輸出第3個字元

 2、cut -b 3-5,10 test4.txt #支援-的寫法,多個定位用逗號分割

 3、cut -b -5 test4.txt #表示從第1個字元到第5個字元

 4、cut -b 6- test4.txt #表示從第6個字元到尾部

 5、cut -c 3-5 test4.txt #以字元分割,中文也顯示正常

 6、cut -d : -f 1 /etc/passwd #指定以:作為分割顯示

 

九、split:分割檔案

1、split -l 27 test3.txt new_  #每27行進行分割一次,分割的檔案以new_開頭

 2、split -l 27 -a 3 test3.txt new_ #-a指定字尾長度

3、split -l 27 -d  test3.txt new_ #-d使用數字字尾

 

十、paste:合併檔案

1、paste test.txt test2.txt #按行合併,預設table分割

 2、paste -d: test.txt test2.txt #指定分隔符合並

 3、paste -s test.txt test2.txt #-s將一列內容轉為1行

 

十一、sort:文字排序

1、sort testSort.txt #將檔案內容轉為ASCII碼,從小到大進行排序

 2、sort -r  testSort.txt #倒序排序

 3、sort -u #去除重複行

 4、sort -t -k #指定列排序

 

十二、join:按兩個檔案的相同欄位合併

1、join testj1.txt testj2.txt #直接合並2個檔案,需要排序一致的

 

十三、uniq:去除重複行

1、uniq testUniq.txt #去除重複行展示

 2、uniq -c testUniq.txt #去除重複行並統計次數

 3、sort testUniq.txt |uniq -c #去重排序

 

十四、wc:統計檔案的行數、單詞數或位元組數

1、wc -l /etc/init.d/README  #檢視行數

 2、wc -c /etc/init.d/README  #檢視位元組數

 3、wc -m /etc/init.d/README  #檢視字元數

 4、wc -w /etc/init.d/README  #檢視單詞數

 5、wc -L /etc/init.d/README  #檢視最長行的長度

 6、wc  /etc/init.d/README  #檢視行數、單詞數、位元組數

 

十五、iconv:轉換檔案的編碼格式

背景:主要由於windows編輯的中文字元在liunx中會有亂碼

iconv -f gb2312 -t utf-8 GB2312.txt #將原始檔為gb2313的編碼轉換為utf-8格式

 

十六、dos2unix:將dos格式檔案轉換成unix格式

1、dos2unix:將dos格式檔案轉換成unix格式

2、unix2dos:將unix格式檔案轉換成dos格式

 

十七、diff:比較兩個檔案的不同

構造:test1、test2

 diff預設顯示格式為三種:a-add,c-change,d-delete

1、diff test1 test2 #d/a簽字的數字是文字1的行號,字元後面的是文字2的行號,不容易識別

 2、 diff -y test1 test2 #並排格式輸出

 3、 diff -y -W 20 test1 test2 #-W指定寬度

 4、diff -c test1 test2 #上下文格式輸出

 5、diff -u test1 test2 #統計格式輸出

 6、diff /etc/rc3.d/ /etc/rc6.d/ #比較兩個目錄

 

十八、vimdiff:視覺化比較工具

 vimdiff test1 test2 #視覺化比較,退出需要兩次(:q)

 

十九、rev:反向輸出檔案內容

1、echo {1..10} | rev #字串反轉

2、cat test3|rev #文字反轉

 

二十、tr:轉換或刪除

1、tr '123' 'xyz' < test4 #替換123

 2、tr '[a-z]' '[A-Z]' < test4 #小寫轉大寫

 3.tr '[0-9]' '[a-j]' < test4 #將數字轉字母

 4、 tr -d 'mrwhite' < test4 #刪除mrwhite

 5、tr -d '\n\t' < test4 #刪除 換行符和製表符

 6、echo 'iiiiammmmmmmrrwwhiiiitttee' | tr -s iamrwhite #刪除連續字元

 7、tr -c '0-9' '*' < test4 #取數字反-替換為*

 

二十一、od:按不同進位制顯示檔案

od -Ax -tcx /bin/ls|more #使用od命令檢視內容

 

 

 

二十二、tee:多重定向

1、ls|tee ls.txt #將標準輸出內容覆寫到檔案中

 

 

 

 2、ls|tee -a ls.txt #將標準輸出內容追加到檔案中

 

 

 

二十三、vi/vim:純文字編輯器

1、普通模式

(1) G或(shift+g):將游標移動到檔案的最後一行

 

 

 

(2) gg或(1G)(1gg):游標移動至檔案的第一行

(3) 0:將游標位置移動到當前行開頭

(4) $:將游標位置移動到當前行結尾

(5) n<Enter>:將游標從當前位置向下移動n行

(6) ngg或(nG):移動到檔案的第n行,可配置:set nu檢視

(7) H:游標移動到當前視窗的最上方的那一行

(8) M:游標移動到當前視窗中間的那一行

(9) L:游標移動到當前視窗最下方的那一行

(10) /1.txt :從游標位置開始,向下尋找同名的字串,n:向下繼續搜尋 N:向上繼續搜尋

(11) ?1.txt :從游標位置開始,向上尋找同名的字串,n:向上繼續搜尋 N:向下繼續搜尋

(12) :g/1/s//a/g:將符合1的內容全部替換為a,斜線為分隔符,可以用@、#等替換

(13) :%s/a/1/g:將符合a的內容全部替換為1,斜線為分隔符,可以用@、#等替換

(14) :n1,n2s/1/a/gc:n1、n2為數字,在第n1行和n2行之間尋找1,用a替換

(15) yy:複製游標所在的當前行

(16) nyy:複製游標開始向下的共n行

(17) p/P:p將已複製的資料貼上到游標的下一行,P則為貼上到游標的上一行

(18) dd:刪除游標所在的當前行

(19) ndd:刪除從游標下開始n行

(20) u:回滾前一個執行過的動作

(21) . :重複前一個執行過的動作

(22) x:向後刪除字元

(23) X:向前刪除字元

(24) d1G:刪除當前行至第一行

(25) dG:刪除當前行至最後一行

(26) d0:刪除當前游標文字至行首

(27) d$:刪除當前游標文字至行尾

 

2、編輯模式

(1) i:在當前游標所在處插入

(2) a:在當前游標所在的下一個字元處插入文字

(3) I:在當前所在行行首第一個非空格字元處開始插入

(4) A:在當前所在行行尾的最後一個字元插入文字

(5) O:在當前行所在行的上一行處插入一行

(6) o:在當前行所在行的下一行處插入一行

(7) ESC :推出編輯模式,回到命令模式

 

3、命令模式

(1) :wq:退出並報錯

(2) :wq!:退出並強制儲存

(3) :q!:強制退出,不儲存

(4) :n1,n2 w filename:將n1行到n2行的內容儲存成filename這個檔案

(5) :n1,n2 co n3:將n1行到n2行的內容複製到n3位置下

(6) :n1,n2 m n3:將n1行到n2行的內容剪貼到n3位置下

(7) !command:暫時離開vi到命令列模式下執行command命令顯示結果

(8) :set nu:顯示行號

(9) :set nonu:取消行號

(10) :vs filename:垂直分屏顯示,同時顯示當前檔案和filename對應的檔案的內容

(11) :sp filename:水平分屏顯示,同時顯示當前檔案和filename對應的檔案的內容

(12) I+#+ESC:(ctrl+v)視覺化模式下一次註釋所選的所行,取消註釋可用:n1,n2s/#/gc,#替換為其他符號可換成別的操作

(13) Del:(ctrl+v)視覺化模式下,一次性刪除所選內容

(14) r:(ctrl+v)視覺化模式下,一次性替換所選內容

 

相關文章