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文字處理三劍客(sed、grep、awk)
一、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文字處理三劍客awk、sed、grep入門
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",
運維之路-文字處理-三劍客(grep、sed、awk)
轉載: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