Liunx運維(三)-檔案過濾及內容編輯處理
文件目錄:
一、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)視覺化模式下,一次性替換所選內容
&n