1. 程式人生 > >shell文字處理三劍客(awk sed grep)

shell文字處理三劍客(awk sed grep)

一.grep:文字過濾器

根據正則表示式來工作,由正則表示式或者字元及基本的文字字元所編寫的過濾條件

tr 'a-z' 'A-Z' < file          ###把passwd中的小寫轉換為大寫


^x      ###以x開頭的

x$      ###以x結尾的


-v      ###反選

grep  nologin$  -v  passwd      ###顯示能登陸的使用者


-E   ^root|root$   ###root在開頭的或者在結尾的,|或運算時擴充套件的要加上-E,用法和grep一樣   

grep -n3 root   ###搜尋root前後各3行


grep -A3 root   ###搜尋root所在行的後三行


grep -B3 root   ###搜尋root所在行的前三行


grep -i  root   ###忽略大小寫


grep x..y       ###x和y之間有兩個字元的


*       ###字元出現任意次

     ###字元出現0到1次

+       ###字元出現1到任意次          

 

{n}       ###字元出現n次


{m,n}     ###字元最少出現m次最多出現n次

{0,n}     ###字元出現0到n次

{m,}      ###字元至少出現m次


(xy){n}   ###xy出現n次

grep  \<關鍵字\>    ##搜尋關鍵字


二.sed:文字編輯器

用來操作純ASCII碼的文字,把當前處理的行儲存在臨時緩衝區,可以僅僅處理指定的行,符合條件的處理,不符合的不處理,完成後把緩衝區的內容輸出到螢幕,緊接著處理下一行,直到檔案結束

p   ##顯示

d   ##刪除

a   ##新增

c   ##替換

w   ##寫入

i    ##插入

-n   ##安靜模式,只有經過sed處理的那行才會顯示出來

(1)p   ##顯示


sed  -n  '2,6!p'  passwd    ##2行和6行不顯示


(2)d   ##刪除

sed  '2,6!d'  passwd     ##2到6行的不刪除

(3)c   ##替換

-i    ###修改完成之後就保留在原檔案裡


替換httpd預設埠的指令碼



(4)a   ##新增


(5)w   ##寫入


sed '1r test' passwd    ##把test的內容新增到passwd檔案的第二行


sed  -n '/root/='  passwd    ##把root所在行行號打印出來


(6)sed的其他用法

sed -f rule test              ###把策略寫在rule檔案中直接修改文加test


sed '=' passwd | sed 'N;s/\n//g'   ###給每一行標號,並且刪除換行符


sed  -n  '$p'  test     ###輸出最後一行

sed  -n  '1p'  test     ###輸出第一行


sed  -e  '=;!G'  test   v ##-e同時執行兩個策略,加行號,並且把每行分開


.awk

awk:文字報告生成器,逐行處理文字,支援在處理第一行之前,做一些準備工作,以及在處理完後做一些總結性質的工作

BEGIN{ }:讀入第一行文字之前執行,一般用來初始化操作

{ }:逐行讀入進行處理

END{ }:處理完最後一行後執行,一般由來輸出處理結果

awk  -F : '$7~/bash$/{print $0}' /etc/passwd        ###第7列是以bash$結尾的輸出這行($0 ##表示輸出此行)


awk  -F : '$7~/bash$/{print $1}' /etc/passwd        ###第7列是以bash$結尾的輸出第一列,並且統計能登陸使用者的個數


awk -F : 'BEGIN{i=0}/bash$/{i++;print $1}END{print i}' passwd   ###查詢使用者是否能登入,並輸出登入使用者的使用者名稱和個數


awk 'NR>=3&&NR<=5{print}'   /etc/passwd    ##輸出在第3行到第5行之間的行


awk -F : 'BEGIN{i=0}$7~/bash$/{i++;print}END{print i}' passwd   ###查詢使用者是否能登入,並輸出登入使用者的資訊和個數


awk 'BEGIN{a=4;print a+2}'      ##awk也可以做運算


awk  -F : 'NR==1{print}' /etc/passwd           ###恆定輸出第一行

抓取IP:


awk  -F : '{print  $1," is readlly"}'   /etc/passwd    ##新增輸出的字串 


補充:

fmt  -s  -w 10 <<EOF  ##一行只能輸出10個字元,否則自動換行


tail -n  10 -f /var/log/messages        ##動態檢視日誌


awk  grep  sed其三者的應用豐富多樣,文字處理是比較靈活的,只要符合規則,可以任意組合;面對不同的問題,寫出多樣的,符合實際情況的策略

相關推薦

shell文字處理三劍客(awk sed grep)

一.grep:文字過濾器 根據正則表示式來工作,由正則表示式或者字元及基本的文字字元所編寫的過濾條件 tr 'a-z' 'A-Z' < file          ###把passwd中的小寫轉換為大寫 ^x      ###以x開頭的 x$      ###以

SHELL文字處理三劍客sedgrepawk

一、grep文字過濾器 1. 基本介紹 Global search regular expression and print out theline 全面搜尋研究正則表示式並顯示出來 grep命令是一種強大的文字搜尋工具根據使用者指定的

02-shell文字處理三劍客sed

sed 是流編輯器,但是它不會修改原始檔。 sed (流文字編輯器) 用法:sed OPTIONS… [SCRIPT] [INPUTFILE…] -r: 使用擴充套件的正則表示式; -n, –quiet, –silent: 不輸出模式空間的內容; -i:直接編輯原檔案; -

Linux文字處理三劍客awksedgrep入門

AWK命令簡介 AWK是一門解釋型的程式語言,它的名字來源於它的三位作者的姓氏:Alfred Aho,Peter Weinberger和Brian Kernighan。AWK能夠應用於廣泛的計算和資料處理任務。所有的GNU/Linux發行版都自帶GAWK,即GNU AWK,

01-shell文字處理三劍客grep

開篇:哈嘍,今天我想寫寫shell程式設計,打算平均一天一篇吧,這樣一個月後就可以進步比較多。 先從shell文字處理三劍客grep、sed、awk開始。聽說啊,要是我不會這個命令,就不好意思說自己會shell程式設計。 1 grep是什麼意思? grep: Global se

Shell程式設計5_文字處理三劍客(awk)

文字處理三劍客(awk) 1.awk介紹 AWK:三位創造者Aho、Weinberger和Kernighan統稱 官方定義:一個優秀的樣式掃描與處理工具 定位:AWK是一種用於處理文字的程式語言工具,主要用於格式化報文或從一個大的文字檔案中抽取資

4.shell程式設計-文字處理三劍客sed

4.1.sed的選項  sed,流編輯器。對標準輸出或檔案進行逐行處理。 語法格式 第一種:stdout | sed [option] "pattern command" 第二種:sed [option] "pattern command" file  選項 -n&

shell 文字處理——使用awk格式化時間戳

date -d @時間戳 "+%Y-%m-%d %H:%M:%S" 也可以內建函式 awk '{print strftime("%Y-%m-%d %H:%M:%S", $1)}' 如果是毫秒級的時間戳要先除以1000;   在 shell 中這樣子處理: awk '{print $1",

運維之路-文字處理-三劍客grepsedawk

轉載:https://blog.csdn.net/zisefeizhu/article/details/82526749 目錄  grep 支援的正則 描述 輸出控制 描述 內容行控制 描述 示例: sed Usage: 命令 描述 地址 描述 匹配刪除(d)  替

文字處理三劍客 grep sed awk

一、正則表示式       正則表示式是對字串(包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為“元字元”))操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個 “規則字串”用來表達對字串的一種過濾邏輯。正則表示

shell腳本學習總結----sed+grep+awk+正則

shellshell腳本學習總結----sed+grep+awk+正則================================================================================第一部分 sed================================

Linux的文本處理工具淺談-awk sed grep

line 二進制 in use react 過程 reac otl split === Linux的文本處理工具淺談 awk 老大 【功能說明】 用於文本處理的語言(取行,過濾),支持正則 NR代表行數,$n取某一列,$NF最後一列 NR==20,NR

awk基礎篇——Shell 文字處理利器

awk sed傾向於以行為單位進行處理,而awk更擅長將一行分為幾段進行處理。 awk的語法 awk用法 | awk '條件型別1{動作1} 條件型別2{動作2} ...' awk '條件型別1{動作1} 條件型別2{動作2} ...' fil

文字處理三劍客grep

grep:根據使用者指定的“模式”對目標文字進行匹配檢查,列印匹配到的行 模式:用正則表示式字元所編寫的過濾條件 grep [option] pattern [file...] --color=auto:對匹配到的文字著色顯示 -v:顯示不能夠被pattern匹配到的行 -

文字處理三劍客AWK

AWK簡介    AWK是一件上古神器,用這句話來形容AWK是最貼切不過了。    縱觀計算機發展的歷史,我們發現,awk幾乎是伴隨著計算機作業系統的發展一路走來。1970年作為計算機計時元年,誕生了UNIX和C語言這兩種偉大的事物。在

Linux進階篇--文字處理三劍客AWK

Linux進階篇–文字處理三劍客之AWK 本章概要 awk介紹 awk基本用法 awk變數 awk格式化 awk操作符 awk條件判斷 awk迴圈 awk陣列 awk函式 呼叫系統命令 一、 awk介紹 awk:Aho, Weinberger, Kerni

sed——Shell 文字處理利器

一、簡介 sed全稱是stream editor,是一個用於文字過濾和替換的流編輯器,它是一個管道命令,資料來源來自stdin,它的最小處理單位是行(與awk區分)。 二、語法 語法如下: sed [-nfri] [動作] -n:使用安靜模式。只

文字處理三劍客awk(原創)

AWK是一種優良的文字處理工具,Linux及Unix環境中現有的功能最強大的資料處理引擎之一。這種程式設計及資料操作語言(其名稱得自於它的創始人阿爾佛雷德·艾侯(Alfred Aho)、彼得·溫伯格(Peter Jay Weinberger)和布萊恩·柯林漢(Brian Wi

linux文字處理三劍客(三):awk命令詳解

簡介 awk是一個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。 awk有3個不同版本: awk、nawk和gaw

Linux文字處理三劍客awk

awk簡介 awk是一種解釋執行的程式語言,用來專門處理文字資料,其名稱是由它們設計者的名字縮寫而來 ———Afred Aho,Peter Weinberger與 Brian Kernighan。常見版本有: - awk: 最原初的版本,它由 AT&am