1. 程式人生 > 其它 >shell——sort、uniq、tr、cut和eval命令

shell——sort、uniq、tr、cut和eval命令

一、排序命令sort

以行位單位對檔案內容進行排序,也可以根據不同的資料型別進行排序

格式:sort [選項] 引數

格式:cat file | sort 選項

1.2常用選項

選項說明
  -f 忽略大小寫,預設大寫字母會排在前面
  -b 忽略每行前面的空格
  -n 按照數字進行排序
  -r 反向排序
  -u 等同uniq,表示相同的資料僅顯示一行,去重
  -t 指定欄位分隔符,預設使用tab鍵分割
  -k 指定排序欄位
  -o <輸出檔案> 將排序後的結果轉存至指定檔案

1.3、應用方法

二、去除重複行操作命令uniq

用於報告或者忽略檔案中連續的重複行,常與sort命令結合使用

格式:uniq [選項] 引數

2.2、常用選項

選項說明
  -c 進行計數,並刪除檔案中重複出現的行
  -d 僅顯示連續的重複行
  -u 僅顯示出現一次的行

2.3、應用方法

三、字元轉換命令

格式:tr [選項] 引數

3.2、常用選項

選項說明
  -c 保留字符集1的字元,其他的字元(包括換行符\n)用字符集2替換
  -d 刪除所有屬於字符集1的字元
  -s 將重複出現的字串壓縮為一個字串,用字符集2替換字符集1
  -t 字符集2替換字符集1,不加選項通結果
字符集1:
  指定要轉換或刪除的原字符集。當執行轉換操作時,必須使用引數”字符集2“指定轉換操作時,必須使用引數”字符集2“指定轉換的目標字符集。但執行刪除操作時,不需要引數“字符集2”
字符集2:
  指定要轉換成的目標字符集

3.3、應用方法

Linux中遇到換行符("\n")會進行回車+換行的操作,回車符反而只會作為控制字元("^M")顯示,不發生回車的操作。而windows中要回車符+換行符("\r\n")才會回車+換行,缺少一個控制符或者順序不對都不能正確的另起一行

3.4、陣列排序

四、顯示、連線檔案命令cut

顯示行中的指定部分,刪除檔案中指定欄位

格式:cut [選項] 引數

4.2、常用選項

選項說明
  -b 以位元組為單位進行分割 ,僅顯示行中指定直接範圍的內容
  -c 以字元為單位進行分割 , 僅顯示行中指定範圍的字元
  -d 自定義分隔符,預設為製表符”TAB”
  -f 顯示指定欄位的內容 , 與-d一起使用
  -n 取消分割多位元組字元
  –complement 此選項用於排除所指定的欄位
  –out-delimiter 更改輸出內容的分隔符

4.3、應用方法

五、eval命令

加上eval時,shell會執行命令之前掃描兩次。eval命令將首先會先掃描命令列進行所有命令適用於那些一次掃描無法實現其功能的變數。該命令對變數進行兩次掃描。