Linux之sort,uniq,join,cut,paste命令
阿新 • • 發佈:2022-12-05
常見命令選項
- sort命令選項:
-c #測試檔案是否被排序
-k #指定排序的域
-m #合併兩個已排序的檔案
-n #根據數字大小進行排序
-o [輸出檔案] #輸出/重定向到指定檔案
-r #將排序結果逆向顯示
-t #改變域分隔符
-u #去除結果中的重複行
- uniq命令選項
-c #列印每行在檔案中重複出現的次數
-d #顯示有重複的記錄,每個記錄顯示一次
-u #只顯示沒有重複的記錄
- join命令選項
join命令只能對已排序的檔案進行操作
-a1或-a2 #分別附加顯示檔案一和檔案二中沒有共同域的記錄
-i #比較域內容時,忽略大小寫差異
-o #設定結果顯示的格式
-t #改變域分割符
-v1或-v2 #與-a選項類似,但不顯示有共同域的記錄
-1或-2 #-1用於設定檔案一連線的域,-2用於設定檔案二連線的域
- cut命令選項
cut命令用於從標準文字檔案中按域或行提取檔案
-c #提取制定的字元數或字元範圍,後面跟的是數字
-f #指定提取的域數或範圍
-d #改變域分隔符
- paste命令選項
paste命令用於講文字檔案或標準輸出中的內容貼上到新的檔案
-d #設定域分隔符(預設為空格或tab)
-s #將每個檔案分割成一行
- 從標準輸入中讀取資料
sort命令demo
- -t選項
$ sort -t: 1.txt #-t與:中間可以有空格也可以沒有
1:a
2:b
2:e
3:p
5:e
6:o
- -k選項
$ sort -t: -k2 1.txt #-k與數字之間可以有空格也可以沒有
1:a
2:b
2:e
5:e
6:o
0:p
3:p
- -n選項
$ sort -t: 1.txt
04:p
11:a
2:b
2:e
3:p
5:e
6:o
$ sort -nt: 1.txt
# 或者使用sort -t:1 1.txt
# 不可以使用sort -t:n 1.txt這種
2:b
2:e
3:p
04:p
5:e
6:o
11:a
- u選項
$ cat 1.txt
11:a
2:b
2:e
5:e
5:e
6:o
5:e
3:p
04:p
$ sort -ut: 1.txt
# 與uniq -u的區別在於uniq只對連續的重複項進行去重
04:p
11:a
2 :b
2:e
3:p
5:e
6:o
- -o選項
$ sort -t: -k2 -o new1.txt 1.txt
$ cat new1.txt
11:a
2:b
2:e
5:e
5:e
5:e
6:o
04:p
3:p
$ sort -t: -c 3
# 無輸出說明已經排好序
$ sort -t: -c 1.txt
sort:1.txt:7:無序: 5:e
# 有輸出說明未排好序
- -m選項
$ cat 2.txt
1:c
2:d
2:d
$ cat 1.txt
11:a
2:b
2:e
5:e
5:e
6:o
5:e
3:p
04:p
# sort -m可以對未排序的檔案進行合併,但是沒有任何意義
$ sort -t: -o sort1.txt 1.txt
$ sort -t: -o sort2.txt 2.txt
$ sort -t: -m sort1.txt sort2.txt
04:p
11:a
1:c
2:b
2:d
2:d
2:e
3:p
5:e
5:e
5:e
6:o
- uniq命令demo
- -c選項
$ uniq -c 1.txt
1 11:a
1 2:b
1 2:e
2 5:e
1 6:o
1 5:e
1 3:p
1 04:p
- -d選項
$ uniq -d 1.txt
5:e
- -u選項
$ uniq -u 1.txt
11:a
2:b
2:e
6:o
5:e
3:p
04:p
- -a和-v選項
$ join -t: -a2 -a1 sort1.txt sort2.txt
04:p
1:c
11:a
2:b:d
2:b:d
2:e:d
2:e:d
3:p
5:e
5:e
5:e
6:o
$ join -t: -v1 sort1.txt sort2.txt
04:p
11:a
3:p
5:e
5:e
5:e
6:o
- -o選項
注意此時的-o用於設定輸出格式,並不是重定向
$ join -t: -v1 -o1.2 1.1 2.2 2.1 sort1.txt sort2.txt
p:04::
a:11::
p:3::
e:5::
e:5::
e:5::
o:6::
- -1和-2選項
$ sort -t: -k2 -o sort1.txt 1.txt
$ cat sort1.txt
11:a
2:b
2:e
5:e
5:e
5:e
6:o
04:p
3:p
$ sort -t: -k2 -o sort2.txt 2.txt
$ cat sort2.txt
1:c
2:d
2:d
cut命令demo
- -c選項
$ cut -c1 sort1.txt
1
2
2
5
5
5
6
0
3
$ cut -c1,3 sort1.txt
1:
2b
2e
5e
5e
5e
6o
0:
3p
- -f與-d選項
$ cut -d: -f2 sort1.txt
a
b
e
e
e
e
o
p
p
paste命令demo
- -d選項
$ paste -d: sort1.txt sort2.txt
11:a:1:c
2:b:2:d
2:e:2:d
5:e:
5:e:
5:e:
6:o:
04:p:
3:p:
$ paste -d\| sort1.txt sort2.txt
11:a|1:c
2:b|2:d
2:e|2:d
5:e|
5:e|
5:e|
6:o|
04:p|
3:p|
- -s選項
$ paste -d\| -s sort1.txt sort2.txt
11:a|2:b|2:e|5:e|5:e|5:e|6:o|04:p|3:p
1:c|2:d|2:d
- -選項
$ paste -d" " - - -
1.txt
1.txt 2.txt
2.txt 3.txt
3.txt
$ ls | paste -d" " - - - - -
1.txt 2.txt 3 4aa 4ab
4ac 4ad 4ae 4af 4ag
4ah 4ai 4aj 4ak 4al
go new1.txt sort1.txt sort2.txt 公共
模板 視訊 圖片 文件 五.檔案的排序、合併和分割.md
下載 音樂 桌面