目錄
一.sort命令(排序)
1.語法格式
2.常用選項
3.相關示例
3.1.
3.2.
二.unip命令(去重)
1.語法格式
2.常用選項
3.相關示例
3.1.
3.2.
三.tr命令(替換)
1.語法格式
2.常用選項
3.相關示例
3.1.
4.刪除空行
方法1
方法2
補充:
1.Windows的另起一行格式(\r\n)轉換成 Linux的另起一行格式(\n)
方法1
方法2
2.對數組排序
四.cut命令(裁剪)
1.語法格式
2.常用選項
3.字符串分片?
3.1.
3.2.
3.3.
五.split命令(拆分)
1.語法格式
2.常用選項
3.拓展(面試題)
3.1.
3.2.
六.paste命令(合并)
1.語法格式
2.常用選項
3.補充(合并文件)
3.1.合并文件的行
3.2.合并文件的列
拓展:
eval命令(掃描)
相關示例
一.sort命令(排序)
- 以行為單位對文件內容進行排序,也可以根據不同的數據類型來排序
- 比較原則是從首字符向后,依次按ASCII碼值進行比較,最后將他們按升序輸出
1.語法格式
sort [選項] 參數XXX | sort 選項
2.常用選項
-n | 按照數字的大小進行排序 |
-r | 倒序排序(配合-n使用) |
-u | 相當于下面的那個命令uniq,去重復的行(只保留一行重復內容) |
-t | 指定字段的分隔符 |
-k | 指定排序的字段 |
-o<輸出文件> | 另保存輸出排序的結果(相當于重定向輸出) |
-f | 忽略大小寫,把小寫字母也當作大寫字母看待 |
-b | 忽略每行前面的空格 |
3.相關示例
3.1.
sort -n
[root@localhost day15]# vim 1.txt
[root@localhost day15]# sort -n 1.txt
33
45
65
155
353
545
888
9999
35653
65623
94545
3.2.
sort -n -r
二.unip命令(去重)
- 用于報告或者忽略文件中連續的重復行,常與 sort 命令結合使用
1.語法格式
uniq [選項] 參數XXX | uniq 選項
2.常用選項
-c | 進行計數,并刪除文件中重復出現的行 |
-u | 顯示僅出現一次的行(包括不連續的重復行) |
-d | 僅顯示重復出現的行(必須是連續的重復行) |
3.相關示例
3.1.
uniq -c
3.2.
uniq -u
三.tr命令(替換)
- 常用來對來自標準輸入的字符進行替換、壓縮和刪除
1.語法格式
XXX | tr 選項 '參數1' ['參數2']
2.常用選項
-c | 保留字符集1的字符,其他字符包括換行符\n用字符集2替換 |
-d | 刪除所有屬于字符集1的字符 |
-s | 將連續重復的字符串壓縮成一個 |
-t | 字符集2 替換 字符集1,不加選項效果相同 |
3.相關示例
3.1.
tr -s
4.刪除空行
方法1
cat 文件 | grep -v "^$"
方法2
cat 文件 | tr -s "\n"
補充:
1.Windows的另起一行格式(\r\n)轉換成 Linux的另起一行格式(\n)
方法1
cat 文件 | tr -d '\r' > 新文件
方法2
yum install -y dos2unix
2.對數組排序
echo ${數組名[@]} | tr ' ' '\n' | sort -rn | tr '\n' ' '
四.cut命令(裁剪)
- 對字段進行截取和剪裁
1.語法格式
cut [選項] 參數cat file | cut [選項] 參數
2.常用選項
-d '分隔符' -f 字段序號 | 根據 -d 指定的分隔符的截取顯示 -f 指定的字段 |
--complement | 取反,不顯示 -f 指定的字段 |
--output-delimiter '分隔符' | 指定輸出的字段分隔符 ? |
3.字符串分片?
3.1.
echo ${變量:下標:長度} ? ? ? ? ? ? ? ? ? ? ? 下標起始從0開始
3.2.
echo $變量 | cut -b 起始下標-終止下標 ? ? ? ? 下標起始從1開始
3.3.
expr substr $變量 起始下標 長度 ? ? ? ? ? ? ?下標起始從1開始
五.split命令(拆分)
- 用于在Linux下將大文件拆分為若干小文件
1.語法格式
split 選項 參數 原始文件 拆分后文件名前綴
2.常用選項
-l | 根據行數分割文件 |
-b | 根據大小分割文件 |
-d | 輸出的目標文件后綴用數字替代 ? |
3.拓展(面試題)
3.1.
如何將一個10G文件分割為10個1G的文件
split -b 1G -d 原文件 目標文件名前綴
3.2.
如何將一個100行文件分割為10個10行的文件
split -l 10 -d 原文件 目標文件名前綴
六.paste命令(合并)
- 將多個文件按照列進行合并
1.語法格式
paste [選項] 文件1 文件2
2.常用選項
-d '分隔符'? | 指定輸出的字段分隔符 |
-s | 將每個列橫向輸出 |
3.補充(合并文件)
3.1.合并文件的行
cat 文件1 文件2 ... > 新文件
3.2.合并文件的列
paste -d '分隔符' 文件1 文件2 ... > 新文件
拓展:
eval命令(掃描)
- 在命令行執行前,先將命令行里的變量置換成對應的值后,再執行命令