俺不會說話,俺莫有文化,俺只會正則表達。
一、sort命令
sort命令:一行為單位對檔案內容進行排序,也可以根據不同的資料型別來排序
語法格式
sort [選項] 引數
cat file | sort 選項
常用選項:
-f:忽略大小寫,預設會將大寫字母排在前面
-b:忽略前導區域的區域
-n:按照數字進行排序
-r:反向排序
-u:等同於uniq,表示相同的資料僅顯示一行
-t:指定欄位分隔符,預設使用[Tab]鍵分隔
-k:指定排序欄位
-o<輸出檔案>:將排序後的結果轉存至指定檔案
例:前面是首字母排序,後面是數值大小排序
二、uniq
用於報告或者忽略檔案中連續的重複行,常與sort命令結合使用
語法格式:
uniq [選項] 引數
cat file | uniq 選項
常用選項:
-c:統計連續重複的數的次數並刪除檔案中重複出現的行,僅顯示一行
-d:僅顯示連續的重複行
-u:僅顯示出現一次的行
uniq testfile
sort -n testfile | uniq -c
例:
三、tr 命令
常用來對來自標準輸入的字元進行替換、壓縮和刪除
語法格式:
tr [選項] [引數,不能是檔案]
常用選項:
-c:保留字符集1的字元,其他的字元(包括換行符\n)用字符集2替換
-d:刪除所有屬於字符集1的字元
-s:將重複出現的字串壓縮為一個字串;用字符集2替換字符集1
-t:字符集2替換字符集1,不加選項同結果。
引數:
字符集1:指定要轉換或刪除的原字符集。當執行轉換操作時,必須使用引數“字符集2"指定轉換的目標字符集。但執行刪除操作時,不需要引數"字符集2";
字符集2:指定要轉換成的目標字符集。
echo "abc" | tr 'a-z' 'A-Z‘
echo -e "abc\ncabcdab" | tr -c "ab\n" "0"
echo -e "abc\ncabcdab" I tr -c "ab" "0"
echo 'hello world' | tr -d 'od'
echo "thissss is a text linnnnnnne." | tr -s 'sn'
例:
刪除空行:
echo -e "aa\n\n\n\n\nbb" | tr -s "\n"
cat testfile4 | tr -s "\n"
把路徑變數中的冒號":",替換成換行符"\n"
echo $PATH | tr -s ":" "\n"
echo -e "aa\n\n\n\n\nbb" | tr -s "\n" ":"
刪除Windows檔案“造成‘^M’字元:
cat file | tr -s "\r" "\n" > new_file
或
cat file | tr -d "\r" > new file
Linux中遇到換行符("\n")會進行回車+換行的操作,回車符反而只會作為控制字元('^M')顯示,不發生回車的操作。
而windows中要回車符+換行符("\r\n")才會回車+換行,缺少一個控制符或者順序不對都不能正確的另起一行。
(Linux的'^M'相當於Windows的\r,屬於不相容的問題)
windows 中建立的檔案
linux 裡的檔案
四、陣列排序
echo ${array[*]} | tr ' ' '\n' | sort -n > newfile
a=0
for i in $(cat file)
do
array[$a]
let a++
或
arrary+=($i)
done
五、正規表示式
通常用於判斷語句中,用來檢查某一字串是否滿足某一格式
正規表示式是由普通字元與元字元組成
元字元是指在正規表示式中具有特殊意義的專用字元,可以用來規定其前導字元(即位於元字元前面的字元)在目標物件中的出現模式
基礎正規表示式常見元字元:(支援工具:grep、egrep、sed、awk)
1、基礎正規表示式常見元字元
( 支援的工具: grep、 egrep、 sed、 awk)
\:轉義字元,用於取消特殊字元的含義,例:\!、\n、\$等
^:匹配字串開始的位置,例:^a、^the、^#、^[a-z]
$:匹配字串結束的位置,例:word$、^$匹配空行
.:匹配除\n之外的任意一個字元,例:go.d、g..d
*:匹配前面子表示式0次或多次,例:goo*d、go.*d
[list]:匹配list列表中的一個字元,例:go[oal]d,[abc],[a-z],[a-z0-9],[0-9]匹配任意一個字元
[^list]:匹配任意非list列表中的一個字元,例:[^0-9]、[^0-9A-Z]、[^a-z]
\{n\}:匹配前面的子表示式n次,例:go\{2\}d、'[0-9]\{2|}'匹配兩位數字
\{n,\}:匹配前面的子表示式不少於n次,例:go\{2,\}d、'[0-9]\{2\}'匹配兩位即兩位以上數字
\{n,m\}:匹配前面的子表示式n到m次,例:go\{2,3}d、'[0-9]\{2,3\}'匹配兩到三位數字
注:egrep、awk使用(n)、(n,)、(n,m)匹配時“{}”前不用加“\”
2、擴充套件正規表示式元字元
(支援的工具: egrep、 awk)
+ :匹配前面子表示式1次以上,例: go+d, 將匹配至少一個o, 如god、 good、 goood等
? :匹配前面子表示式0次或者1次,例: go?d, 將匹配gd或god
() :將括號中的字串作為h一個整體,例1: g(oo)+d," 將匹配oo整體1次以上,如good、gooood等
| :以或的方式匹配字條串,例: g (oo|la)d," 將匹配good或者glad
相關文章
- SDK怎麼測試?俺不會啊
- 俺尋思這node版的漫畫爬蟲沒人要捏...爬蟲
- 這次不會說我的正則教程沒寫全了吧??
- 寫爬蟲,不會正則怎麼行?爬蟲
- Golang 的正則表達Golang
- 正則表達batchInert,過濾BAT
- securecrt保持會話不會斷掉Securecrt會話
- Python之正則表達運用Python
- 會說話的ABAP report
- 實話實說:只會.NET,會讓我們一直處於鄙視鏈、食物鏈的下游
- MySQL修改表結構到底會不會鎖表?MySql
- 練完這篇就會寫正則
- 面試中會遇到的正則題面試
- 一文講清如何正確選擇圖表,學會後再也不會用錯圖表
- 正則式表達是什麼,有什麼作用
- MySQL效能優化 - 別再只會說加索引了MySql優化索引
- 阿里巴巴推出EMO:會說話的肖像阿里
- 匹配統一社會信用程式碼的正則
- 你竟然還不會用正規表示式?
- 還不會正規表示式?看這篇!
- 《空瓶子》評測:如果瓶子和杯子會說話
- 會話管理會話
- 你說啥什麼?註解你還不會?
- Hive(總)看完這篇,別說你不會Hive!Hive
- 看完動畫你還敢說不會 快速排序動畫排序
- MQTT-會話MQQT會話
- 為什麼說會不會SQL,決定著你的工資?方向不對,努力也白費!SQL
- 不會git的程式設計師,會不會被鄙視?Git程式設計師
- TensorFlow學習之會話Sesstion()和互動會話InterativeSesstion()會話
- 只會Python可造不出iPhonePythoniPhone
- SQL 最佳化極簡法則,還有誰不會?SQL
- 兩個會話分別只執行一個SQL,可能形成死鎖嗎會話SQL
- 【學習筆記】不會吧不會吧,不會有人還在手寫堆吧筆記
- 正規表示式真的很6,可惜你不會寫
- 正規表示式真的很騷,可惜你不會寫!!!
- 資料庫會話數量過多,定期清理inactive會話資料庫會話
- 會議結束後,莫留機密在身後
- 為什麼說共享WiFi專案是如今風口,會不會已經太晚了!WiFi