1. 程式人生 > >linux命令--查詢與統計(grep、awk、sort、uniq、wc)

linux命令--查詢與統計(grep、awk、sort、uniq、wc)

在做日誌分析時或者配置分析時,通常會遇到查找出符合某一條件的行,並統計,主要應用的就是grep、awk、sort、uniq、wc五個命令

1. grep命令

grep(global search regular expression(RE) and print out the line,全面搜尋正則表示式並把行打印出來)是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來

語法格式為:

grep [option] pattern file //pattern 通常可以為正則表示式

常見的引數為:

選項
-a :將 binary 檔案以 text 檔案的方式搜尋資料
-c :計算找到 '
搜尋字串' 的次數 -i :忽略大小寫的不同,所以大小寫視為相同 -n :順便輸出行號 -v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行! --color=auto :可以將找到的關鍵詞部分加上顏色的顯示喔!
2.awk命令

  awk命令通常是將所列出的行,根據條件打印出某一列或幾列

  常用形式為:awk  -F ':'  'BEGIN {print "name,shell"}  {if($1="root") print $1","$7} END {print "blue,/bin/nosh"}'  

3.sort命令

sort排序原則:sort將檔案的每一行作為一個單位,相互比較,比較原則是從首字元向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。

sort [optional] filename

常用引數:

-u:去除重複行

-r:預設是升序排序,-r是改為降序

-o:將排序結果寫入到原始檔

-n:預設是通過ASCII碼值排序,但是這時會出現10比2小的情況,-n就是說要以數值進行排序

-k和-t:-k是指定以哪一列進行排序,-t是指定分隔符

舉例:

(1)sort -n -t " " -k 2 -k 3 facebook.txt  //人數相同的按照員工平均工資升序排序

(2) sort -n -t ' ' -k 3r -k 2 facebook.txt //按照員工工資降序排序,如果員工人數相同的,則按照公司人數升序排序

(3)sort -t ‘ ‘ -k 1.2 facebook.txt //從公司英文名稱的第二個字母開始進行排序

(4)sort -t ‘ ‘ -k 1.2,1.2 -k 3,3nr facebook.txt //只針對公司英文名稱的第二個字母進行排序,如果相同的按照員工工資進行降序排序

4.uniq命令

uniq命令可以去除排序過的檔案中的重複行,因此uniq經常和sort合用。也就是說,為了使uniq起作用,所有的重複行必須是相鄰的。

-i   :忽略大小寫字元的不同;
-c  :進行計數,即統計該行的重複次數
-u  :顯示不存在的行
-d:顯示存在重複的行
5.wc  命令
統計指定檔案中的位元組數、字數、行數,並將統計結果顯示輸出。該命令統計指定檔案中的位元組數、字數、行數。如果沒有給出檔名,則從標準輸入讀取。wc同時也給出所指定檔案的總統計數。
-c 統計位元組數。
-l 統計行數。
-m 統計字元數。這個標誌不能與 -c 標誌一起使用。
-w 統計字數。一個字被定義為由空白、跳格或換行字元分隔的字串。
-L 列印最長行的長度。
-help 顯示幫助資訊
--version 顯示版本資訊


[[email protected] test]# wc test.txt
 7  8 70 test.txt

7 表示行數

8 表示單詞數

70  位元組數

相關推薦

linux命令--查詢統計grepawksortuniqwc

在做日誌分析時或者配置分析時,通常會遇到查找出符合某一條件的行,並統計,主要應用的就是grep、awk、sort、uniq、wc五個命令 1. grep命令 grep(global search regular expression(RE) and print out th

linux命令:檔案搜尋locatewhereiswhichfindgrep

locate(檔案搜尋命令): 1、格式: locate 檔名 2、描述: 在後臺數據庫(/var/lib/mlocate)中按檔名搜尋,速度更快,是因為不用遍歷整個系統。mlocate檔案是定時更新的,在使用locate命令前可以先使用命令 u

Linux命令及三劍客grep sed awk

txt 當前 修改 刪除 root alex bak 過濾 dbo 令的介紹1.1 mv 修改兼移動命令1.1.1 移動命令mv 1.1.2 修改命令mv[root@oldboy ~]# mv oldboy.txt oldgirl.txtmv: cannot stat

Linux命令shell指令碼程式設計大全

十一、處理使用者輸入 命令列引數 讀取引數: $0是程式名,$1是第一個引數,$2是第二個引數,以此類推,直到第9個引數$9。當引數個數超過10以後,需要在變數數字周圍加上花括號,如${10},如果輸入到命令列的引數是字串且含有空格,需要使用引號。 #! /bin/bash echo

Linux命令shell指令碼程式設計大全

一、基本 bash shell命令 建立檔案 : touch 連結檔案:符號連結:是一個實實在在的檔案,兩個通過符號連結在一起的檔案,彼此的內容並不相同。使用ln -s命令。 硬連結:會建立獨立的虛擬檔案,其中包含了原始檔案的資訊及位置。但他們從根本上而言是同一個檔案。原始檔案必須事

Linux命令shell指令碼程式設計大全

十二、呈現資料 輸入和輸出     標準檔案描述符                  0 STDIN 標準輸入   &n

linux 命令 findrm實現查詢並刪除目錄或檔案

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Menlo; color: #000000; background-color: #ffffff } span.s1 { }   504  find /Volumes/WD/data

Linux三劍客命令grepawk,sed

本教程是一些Linux命令中關於grep、cut、printf、sed、awk 的一些基本用法,沒有過多的固定格式化語法,而是通過鮮明的對比與例子進行演示,旨在方便大家更好的記憶與理解! 1、grep正則 匹配日期格式 YYYY-MM-DD [0-9]{4}-[0-9]{2}-[0-9]

耳朵linux——檔案查詢編輯器

Linux下查詢檔案命令:which,whereis,locate,find which命令:which是通過 PATH環境變數到該路徑內查詢可執行檔案,所以基 本的功能是尋找可執行檔案 -a :將所有由 PATH 目錄中可以找到的指令均列出,而不止第一個 w

Linux命令Shell指令碼程式設計大全

一、建立函式 1.基本的指令碼函式 1.1 建立函式 function name { commands} 1.2 使用函式 在行中指定函式名就行了 ## 建立函式,注意函式名和大括號中間有空格,不然會報錯 function func1 { echo "

Linux檔案查詢vivim文字編輯器

Linux檔案查詢 1.which 使用which查詢可執行檔案的路徑 。which是通過 PATH環境變數到該路徑內查詢可執行檔案,所以基本的功能是尋找可執行檔案 [[email protected] ~]# which [-a] command 選

Linux命令shell指令碼20--例項:備份檔案

建立一個配置檔案,該檔案包含了要備份的每個目錄或檔案 $ cat files_backup_config /Users/chenhong/Desktop/shell_workspace/my

Linux命令備忘例項7——雙向重定向字元操作

1.tee(雙向重定向) 管道符或者“>”操作符都是單向的資料流,為了在資料流處理的國中將某段資訊儲存到檔案,同時希望這個資料流繼續輸出到後續的命令,那麼tee就是為了完成這樣的工作情景。 tee相當於一個分流器,將資料流分送到檔案和stdout。

Linux命令shell指令碼12--控制指令碼

處理訊號 Ctrl+C組合鍵會產生SIGINT訊號,會停止shell中當前執行的程序 Crtl+Z組建鍵會產生SIGTSTP訊號,停止shell中執行的任何程序,停止程序會讓程式繼續保留在記憶體中,

Linux命令shell指令碼14--在函式中使用陣列

陣列變數和函式 傳遞陣列給函式 function testit(){ local new_array; new_array=(`echo [email

Linux命令去重統計排序awk命令去重,sort, uniq命令去重統計

awk命令去重,sort, uniq命令去重統計 利用Linux命令列進行文字按行去重並按重複次數排序 linux命令列提供了非常強大的文字處理功能,組合利用linux命令能實現好多強大的功能。本文這裡舉例說明如何利用Linux命令列進行文字按行去重並按

雲開發WePY,快速實現Linux命令查詢小程序

acc 而是 更多 配置 access 決定 get() 對象 map 大家好,今天我來為大家分享一下, Linux 命令查詢小程序中的 WePY 雲開發實踐。 Why WePY首先,先分享一下為什麽要選擇 WePY ? 在項目開始進行選型的時候,我可選的底層框架有 WeP

Linux命令工具 apt-get1

purge tor show 命令工具 但是 nag deb 模式 其中 Advanced Package Tool,又名apt-get,是一款適用於Unix和Linux系統的應用程序管理器。最初於1998年發布,用於檢索應用程序並將其加載到Debian Linux系統。A

大數據江湖之即席查詢分析下篇--手把手教你搭建即席查詢分析Demo

dmi 安裝centos 用戶 author sla repo 相關 中文 plugin 上篇小弟分享了幾個“即席查詢與分析”的典型案例,引起了不少共鳴,好多小夥伴迫不及待地追問我們:說好的“手把手教你搭建即席查詢與分析Demo”啥時候能出?說到就得做到,差啥不能差

環境變量—《linux命令shell腳本編程大全》

部分 shel 單個 查找 long exp 設置 全局變量 區分 環境變量部分:1.查看全局變量:printenv/env2.顯示單個環境變量的值:echo 如echo $HOME3.顯示為某個特定進程設置的所有環境變量:set4.設置全局變量:創建局部環境變量--導出到