Linux去重命令uniq、截取cut、統計wc


1.去重命令uniq

文本中的重復行,基本上不是我們所要的,所以就要去除掉。使用uniq的時候要注意以下二點

  1. 對文本操作時,它一般會和sort命令進行組合使用,因為uniq 不會檢查重復的行,除非它們是相鄰的行。如果您想先對輸入排序,使用sort -u。

  2. 對文本操作時,若域中為先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符將被跳過

用法:uniq [選項]... [文件]
選項與參數:
選項與參數:
    -i  :忽略大小寫字符的不同;
    -c  :進行計數
    -u  :只顯示唯一的行	

去重內容,必須是連續的行,必須要配合sort先排序,再去重,去重也不會修改源文件的內容

#uniq testfile  
hello
world
friend
hello
world
hello

#未經排序的文件,將會發現沒有任何行被刪除

2.文件內容截取命令cut

cut命令可以從一個文本文件或者文本流中提取文本列

用法:cut [選項]... [文件]
-b :以字節為單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標志。
-c :以字符來取內容。
-d :自定義分隔符,默認為制表符。
-f :與-d一起使用,指定顯示哪個區域。
-n :取消分割多字節字符。僅和 -b 標志一起使用。如果字符的最后一個字節落在由 -b 標志的 List 參數指示的
范圍之內,該字符將被寫出;否則,該字符將被排除。

以域取內容-d、-f

[root@@localhost ~]# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
# 1 | 2       | 3   | 4       | 5            | 6            | 7

將 PATH 變量取出,我要找出第五個路徑

#echo $PATH | cut -d ':' -f 5
/usr/local/bin

將 PATH 變量取出,我要找出第一到第三個路徑,還有第五個路徑。

echo $PATH | cut -d ':' -f 1-3,5
/bin:/usr/bin:/sbin:/usr/local/bin

以字符來取內容-c

將 PATH 變量取出,我要找出第三個路徑

[root@localhost ~]# cut -c 11-13 $PATH

3.文件統計命令wc

統計文件里面有多少單詞,多少行,多少字符。

選項與參數: # wc [-lwm]
-l  :僅列出行;
-w  :僅列出多少字(英文單字);
-m  :多少字符;
## 舉例[root@localhost ~]# wc /etc/services
11176    61033   670293  /etc/services
文件行數 單詞數量 字符數量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM