目錄
1.排序工具--sort命令
1.1 快讀查找一個目錄中最大文件
2.去重工具--uniq命令
2.1 分析判斷遠程登錄錯誤次數,禁止該用戶遠程登錄
3.修改工具--tr命令
4.列截取工具--cut命令
5.分割文件工具--split命令
6.合并文件列--paste命令
7.掃描工具--eval命令
8.總結
1.排序工具--sort命令
以行為單位對文件內容進行排序,也可以根據不同的數據類型來排序
比較原則是從首字符向后,依次按ASCII碼值進行比較,最后將他們按升序輸出。
語法格式
sort [選項] 參數
cat file | sort 選項
按首字母排序,首字母一樣按第二個字母排序,以此類推
數字:按第一個字符排序,第一個字符一樣再看第二個數字,依次類推
常用選項
-n數字升序排序;-r反序排序
-u去重
-t指定字段分隔符;
-k指定排序字段
-t ':' 以冒號為分割,-k 3 指定第三個字段進行排序,-nr 倒序排序
-o將排序后的結果轉存至指定文件;效果等同于“>”
-f忽略大小寫
1.1 快讀查找一個目錄中最大文件
使用du -a查找所有文件,再通過sort -nr進行倒序排序查看最大文件
2.去重工具--uniq命令
- 用于報告或者忽略文件中連續的重復行,常與sort 命令結合使用.
- 注意:?是連續的行。所以通常和sort結合使用,先排序使之變成連續的行, 再執行去重操作,否則不連續的重復行它不能去重。
語法格式
uniq [選項] 參數
cat file | uniq 選項
常用選項
如何刪除重復行
-c統計指定文件中行數
-d僅顯示有重復
-u查看內容沒有重復
2.1 分析判斷遠程登錄錯誤次數,禁止該用戶遠程登錄
加入黑名單,防止登錄
3.修改工具--tr命令
- 常用來對來自標準輸入的字符進行替換、壓縮和刪除.
語法格式
tr [選項] [參數]
常用選項
-t 字符集1替換字符集2,不加選項-t結果也相同
-c保留字符集1的字符,其他字符用字符集2替換
案例:
保留ab,其余都替換為0,\n為換行也會替換為0
-d刪除所有 參數1 的字符
-s根據 參數1 進行去重,如果有 參數2 則再用 參數2 的字符替換 參數1 的字符
補充:
1.如何遍歷PATH中的所有目錄?
2.如何將一個ip地址轉化為一個字符串列表?
3.如何將windows文件格式轉換為linux文件格式?
(1).windows的換行:由回車符\r和換行符\n組成;而linux的換行:由換行符\n組成.
(2).安裝dos2unix工具,即可解決windows文件轉化為linux文件
4.使用sort和tr命令,實現數組的排序;
刪除空行的兩種方法;
1.grep -v “^$”
2.tr -s "\n"
4.列截取工具--cut命令
顯示行中的指定部分,刪除文件中指定字段.
語法格式
cut 參數
cat file | cut選項
常用選項
注意:
--output-dellmiter指定輸出的字段分割符
--complement取反作用
補充:
字符串分片的三種方法
1.echo ${變量:下標:長度}? ;該方法下標起始從0開始
2.echo $變量 | cut -b 起始下標-終止下標? ;該方法下標起始從1開始
3.expr substr $變量 起始下標 長度? ;該方法下標起始從1開始
5.分割文件工具--split命令
split命令可以將一個大文件分割成很多個小文件,有時需要將文件分割成更小的片段,比如為提高可讀性,生成日志等。
語法格式
split 選項 參數 原始文件 拆分后文件名前綴
常用選項
1.如何分割一個大文件根據行分割
split -l?(指定分割行數) 源文件 目標文件名前綴
-d ? 輸出的目標文件后綴用數字替代
2.如何將一個10G文件分割為10個1G的文件?
split -b 1G 源文件 目標文件名前綴
6.合并文件列--paste命令
將多個文件按照列進行合
語法格式
paste [-s][-d <間隔字符>] 文件...
常用選項
-d 指定分割符
-s將每一個字段橫向輸出
如何合并文件列?
1.paste 文件1 文件2
示例:
將b.txt與與a.txt文件第二列進行合并
如何合并文件行?
cat 文件1 文件2? > 新文件
7.掃描工具--eval命令
命令字前加上eval時,shell會在執行命令之前掃描它兩次。eval命令將首先會先掃描命令行進行所有的置換,然后再執行該命令。該命令適用于那些一次掃描無法實現其功能的變量。該命令對變量進行兩次掃描。
示例1?
示例2
示例3
示例4