一、文件和目錄內容檢索處理命令
1、uniq去重
語法
uniq [options] [input_file [output_file]]
選項
選項 | 作用 |
---|---|
-c | 進行計數,并刪除文件中重復出現的行 |
-d | 僅顯示連續的重復行 |
-u | 僅顯示出現一次的行 |
-i | 忽略大小寫 |
案例
1、刪除輸入文件中的重復行
sort input.txt | uniq
?
2、僅顯示重復的行
sort input.txt | uniq -d
?
3、忽略大小寫進行比較
sort -i input.txt | uniq -i
4、進行計數,并刪除文件中重復出現的行
sort uniq.txt | uniq -c
?
2、tr轉換
語法
tr [options] set1 set2
選項
選項 | 作用 |
---|---|
-c | 保留字符集1的字符,其他的字符用(包括換行符\n)字符集2替換 |
-d | 刪除所有屬于字符集1(-d 后面的參數)的字符 |
-s | 將重復出現的字符串壓縮為一個字符串;用字符集2 替換 字符集1 |
-t | 字符集2 替換 字符集1,不加選項同結果 |
案例
1、將文本中的大寫字母轉換為小寫字母
cat uniq.txt | tr 'A-Z' 'a-z'
2、刪除文本中的空格
echo "hello world" | tr -d ' '
3、將文本中的特定字符替換為另一個字符
echo "abc-" | tr 'a-z' 'X-Y'
4、壓縮重復字符
echo "foo bar" | tr -s ' '
?
5、去掉空白符
echo "hello\tworld" | tr -d '[:space:]'
3、cut切割
語法
cut [options] [field-spec]
選項
選項 | 作用 |
---|---|
-f | 通過指定哪一個字段進行提取。cut命令使用“TAB”作為默認的字段分割符 |
-d | “TAB”是默認的分隔符,使用此選項可更改為其他的分隔符 |
-c | 以字符為單位進行分割 |
- -complement | 用于排除所指定的字段 |
- -output-delimiter | 更改輸出內容的分隔符 |
-s | 跳過空白字段 |
-b, -B | 僅打印非空白的字段。 |
案例
1、提取指定范圍內的字段:(連續)
cut -d ':' -f 1-3 file.txt
?
2、使用制表符作為分隔符提取字段
cut -d $'\t' -f 1 file.txt
3、提取指定文件中的所有字段(Rocky9中不可用)
cut -d ':' -f * file.txt
4、僅提取非空白字段
cut -b 3 file.txt
5、使用通配符提取多個字段:(可以不連續)
cut -d':' -f 1,2,3 file.txt
6、統計messages(系統)日志每個時間點產生日志的條目數量
cut -d' ' -f 4 messages | cut -d ':' -f 1 | uniq -c
7、統計web站點訪問用戶數
[root@c2407 nginx]# cat access.log | cut -d " " -f 1 | uniq -c12 192.168.115.125 192.168.115.100
4、which命令
語法
which [command]
選項
選項 | 作用 |
---|---|
-a 或 --all | 打印所有匹配的命令路徑,而不僅僅是第一個匹配的。 |
-p 或 --print-path | 除了命令名稱外,還打印出完整的路徑。 |
-v 或 --version | 打印 which 命令的版本信息。 |
案例
5、whereis命令
語法
whereis [-bms] [-u] [-f] [-h] [-L] [-M] [-S] [-version] [command]
選項
選項 | 作用 |
---|---|
-b 或 --binary | 只查找二進制文件。 |
-m 或 --manual | 只查找手冊頁。 |
-s 或 --source | 只查找源代碼文件。 |
-u 或 --usage | 打印使用說明。 |
-f 或 --follow | 跟隨符號鏈接。 |
-h 或 --help | 打印幫助信息。 |
L 或 --logical | 搜索邏輯路徑,不包含物理符號鏈接。 |
-M 或 --physical | 搜索物理路徑,不包含邏輯符號鏈接。 |
-S 或 --size | 只查找指定大小的文件。 |
6、diff命令
語法
diff [選項] 文件1 文件2
選項
選項 | 作用 |
---|---|
-q 或 --quiet | 只輸出文件差異的文件名,不顯示詳細差異。 |
-c 或 --context | 以語境方式顯示差異,默認顯示3個字符的上下文。 |
-u 或 --unified | 以統一的方式顯示差異,這是默認模式,顯示共同的祖先與當前文件之間的差異。 |
-a 或 --text | 比較文本文件,忽略文件的格式差異。 |
-b 或 --ignore-space-change | 忽略空白的差異(空格、制表符等)。 |
-B 或 --ignore-space-at-eol | 忽略每行末尾的空白差異。 |
-i 或 --ignore-case | 忽略大小寫差異。 |
-D 或 --horizontal-split | 以水平分割的方式顯示差異。 |
-E 或 --sideby-side | 以并排的方式顯示差異。 |
-l 或 --from-file | 只顯示文件2相對于文件1的差異。 |
-r 或 --recursive | 遞歸地比較目錄。 |
-N 或 --new-file | 當文件2是文件1不存在的文件時,只顯示文件2的內容。 |
-x 或 --exclude | 跳過指定模式的文件。 |
-X 或 --exclude-from | 從指定的文件中讀取排除模式。 |
--from-file=FILE | 同 -l ,指定比較的基準文件。 |
--horizontalsplit | 同 -D ,以水平分割的方式顯示差異。 |
--left-column | 只顯示左側列的差異。 |
--no-dereference | 不解析符號鏈接。 |
--old-file | 當文件1是文件2不存在的文件時,只顯示文件1的內容。 |
--recursive | 同 -r ,遞歸地比較目錄。 |
--right-column | 只顯示右側列的差異。 |
--speed-large-files | 用于大文件,減少內存使用。 |
案例
[root@c2407 opt]# diff /etc/passwd ./passwd
44d43
< nginx:x:988:982:Nginx web server:/var/lib/nginx:/sbin/nologin
比較兩個文件的區別差距
二、文件與目錄歸檔壓縮命令
1、tar命令
語法
tar [選項] [歸檔文件名] [-C] [解壓路徑]
常用組合選項:
歸檔:tar zcvf
? ? ? ? ? ?tar jcvf
解壓:tar xf -C
查看:tar tvf
選項
選項 | 作用 |
---|---|
-z,--gzip | 用 gzip 對存檔壓縮 |
-c, --create | 建立新的存檔 |
-v, --verbose | 詳細顯示處理的文件 |
-f, --file | 指定存檔文件路徑及名稱 |
-j, --bzip2 | 通過 bzip2 過濾歸檔 |
-x, --extract, --get | 從歸檔中解出文件 |
-C | 指定解壓后的存儲路徑 |
tvf | 僅查看歸檔包中的文件內容 |
案例
1、歸檔/root下所有內容
2、查看壓縮內容
3、壓縮
tar -jcvf lx.tar.bz2 lx.txt
tar -zcvf lx.tar.gz lx.txt
4、解壓
解壓到當前目錄
tar xf opt.tar
解壓到其他目錄 -C? /tmp/
2、zip命令
語法
zip 壓縮后的文件名 需要壓縮的文件
解壓縮命令
unzip 壓縮文件名
3、gzip命令
語法
gzip 需要壓縮的文件
解壓縮命令
gunzip 壓縮文件
案例
4、bzip2命令
語法
bzip2 需要壓縮的文件
解壓縮命令
bunzip2 壓縮文件
案例
三、統計命令
1、wc
wc -l 行數?
wc -w 單詞
wc -c 字符
2、du
du -sh 總容量
su -ah 每個文件的容量及總容量