国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux:shell腳本 正則表達式與AWK

這篇具有很好參考價值的文章主要介紹了Linux:shell腳本 正則表達式與AWK。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?

目錄

?文章來源地址http://www.zghlxwxcb.cn/news/detail-651795.html

一、正則表達式

1.2元字符

?1.3表示次數

1.4位置錨定

1.5分組或其他

1.6擴展正則表達式

1.7grep

二、AWK

awk -F

?編輯三、sed

1.sed簡介

2.sed工作流程

3.sed命令格式

3.1打印全部內容

?3.2 查看文件,打印全部內容

?3.3打印指定行內容

3.4支持正則表達式,打印范圍內容?

3.5#,/關鍵字/p’?從第#行開始匹配

?3.6?‘/關鍵字/,#’?找到第#個關鍵字為止?編輯

?3.7打印奇偶數行

3.8刪除指定行?

?3.9?先備份內容再刪除

3.10??在指定行后插入?

?3.11修改全局,后面加g

3.12?查找?guī)c到幾點之間的日志


一、正則表達式

由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面意義,而表示控制或通配的功能,類似于增強版的通配符功能,但與通配符不同,通配符功能是用來處理文件名,而正則表達式是處理文本內容中字符。

正則表達式被很多程序和開發(fā)語言所廣泛支持:vim, less,grep,sed,awk, nginx,mysql 等

主要用來匹配字符串(命令結果,文本內容),

通配符匹配文件(而且是已存在的文件)

  • 基本正則表達式

  • 擴展正則表達式

1.2元字符

. ??匹配任意單個字符,可以是一個漢字 ?
[] ??匹配指定范圍內的任意單個字符,示例:[zhou] ??[0-9] ??[] ??[a-zA-Z] ? [:alpha:]
[^] 匹配指定范圍外的任意單個字符,示例:[^zhou] [^a.z] [a.z]


[:alnum:] 字母和數字
[:alpha:] 代表任何英文大小寫字符,亦即 A-Z, a-z
[:lower:] 小寫字母,示例:[[:lower:]],相當于[a-z]
[:upper:] 大寫字母
[:blank:] 空白字符(空格和制表符)
[:space:] 包括空格、制表符(水平和垂直)、換行符、回車符等各種類型的空白,比[:blank:]包含的范圍

[:cntrl:] 不可打印的控制字符(退格、刪除、警鈴...)
[:digit:] 十進制數字
[:xdigit:]十六進制數字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 標點符號
\w #匹配單詞構成部分,等價于[_[:alnum:]]
\W #匹配非單詞構成部分,等價于[^_[:alnum:]]
\S ????#匹配任何非空白字符。等價于 [^ \f\n\r\t\v]。
\s ????#匹配任何空白字符,包括空格、制表符、換頁符等等。等價于 [ \f\n\r\t\v]。注意
Unicode 正則表達式會匹配全角空格符

元字符點(.)

#此處的點代表字符

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

#點值表示點需要轉義

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

#r..t ..代表任意兩個字符?

?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?1.3表示次數

* #匹配前面的字符任意次,包括0次,貪婪模式:盡可能長的匹配
.* #任意長度的任意字符,不包括0次
\? #匹配其前面的字符出現0次或1次,即:可有可無
\+ #匹配其前面的字符出現最少1次,即:肯定有且 >=1 次
\{n\} #匹配前面的字符n次
\{m,n\} #匹配前面的字符至少m次,至多n次
\{,n\} ?#匹配前面的字符至多n次,<=n
\{n,\} ?#匹配前面的字符至少n次
ifconfig ens33|grep netmask|grep -o?

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

1.4位置錨定

^ #行首錨定, 用于模式的最左側
$ #行尾錨定,用于模式的最右側
^PATTERN$ #用于模式匹配整行 (單獨一行 ?只有root)
^$ #空行
^[[:space:]]*$ # ?空白行


\< 或 \b ?? ? ? #詞首錨定,用于單詞模式的左側(連續(xù)的數字,字母,下劃線都算單詞內部)
\> 或 \b ???????#詞尾錨定,用于單詞模式的右側
\<PATTERN\> ????#匹配整個單詞?

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

1.5分組或其他

分組:() 將多個字符捆綁在一起,當作一個整體處理,如:(root)+

后向引用:分組括號中的模式匹配到的內容會被正則表達式引擎記錄于內部的變量中,這些變量的命名

方式為: \1, \2, \3, ...

\1 表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到的字符

?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

1.6擴展正則表達式

* ??匹配前面字符任意次
? 0或1次
+ 1次或多次
{n} 匹配n次
{m,n} 至少m,至多n次
{,n} ?#匹配前面的字符至多n次,<=n,n可以為0
{n,} #匹配前面的字符至少n次,<=n,n可以為0?

?表示郵箱:Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?表示手機號:

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

1.7grep

grep [選項]… 查找條件 目標文件

  • -i:查找時忽略大小寫

  • -v:反向查找,輸出與查找條件不相符的行

  • -o 只顯示匹配項

  • -f 對比兩個文件的相同行

  • -c 匹配的行數([root@localhost ky15]# grep -c root passwd 2)

-color=auto 對匹配到的文本著色顯示
-m ?# 匹配#次后停止

-v 顯示不被pattern匹配到的行,即取反

-i 忽略字符大小寫
-n 顯示匹配的行號
-c 統(tǒng)計匹配的行數

-o 僅顯示匹配到的字符串
-q 靜默模式,不輸出任何信息
-A # after, 后#行?

-B # before, 前#行
-C # context, 前后各#行

-e 實現多個選項間的邏輯or關系,如:grep –e ‘cat ' -e ‘dog' file

-w 匹配整個單詞?

二、AWK

在 Linux/UNIX 系統(tǒng)中,awk 是一個功能強大的編輯工具,逐行讀取輸入文本,默認以空格或tab鍵作為分隔符作為分隔,并按模式或者條件執(zhí)行編輯命令。而awk比較傾向于將一行分成多個字段然后進行處理。AWK信息的讀入也是逐行

指定的匹配模式進行查找,對符合條件的內容進行格式化輸出或者過濾處理,可以在無交互 的情況下實現相當復雜的文本操作,被廣泛應用于 Shell 腳本,完成各種自動化配置任務。

?#打印root 多少行=passwd里的行數

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

#分區(qū)利用率

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

#用冒號分隔開

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?#取ip地址

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

awk -F

?-F “分隔符” 指明輸入時用到的字段分隔符,默認的分隔符是若干個連續(xù)空白符

#? $0代表全部元素

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

#? $1,$3代表第一第三列

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?#? 已root為開頭的行

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

#? 統(tǒng)計當前已/bin/bash結尾的行?

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

NR:當前處理行的行號

NR寫在后面則在后面顯示行號

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

#?NR%2==0取偶數行

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器#NR%2==1取奇數行

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?#NR==1,NR==4取區(qū)間行?

三、sed

1.sed簡介

  • sed編輯器時一種流編輯器,流編輯器會在編輯器處理數據之前基于預先提供的一組規(guī)則來編輯數據流。

  • sed編輯器可以根據命令來處理數據流中的數據,這些命令要么從命令行中輸入,要存儲在一個命令文本文件中

2.sed工作流程

  • 讀取: sed從輸入流(文件、管道、標準輸入)中讀取一行內容并存儲到臨時的緩沖區(qū)中(又稱模式空間,pattern space )。
  • 執(zhí)行:默認情況下,所有的sed 命令都在模式空間中順序地執(zhí)行, 除非指定了行的地址,否則sed命令將會在所有的行上依次執(zhí)行。
  • 顯示:發(fā)送修改后的內容到輸出流(屏幕)。在發(fā)送數據后,模式空間將會被清空。在所有的文件內容都被處理完成之前,上.述過程將重復執(zhí)行,直至所有內容被處理完。

3.sed命令格式

-n 不輸出模式空間內容,即不自動打印,加p恢復自動打印
-e 多點編輯
-f 從指定文件中讀取編輯腳本
-r? -E 使用擴展正則表達式
-i 備份文件并原處編輯
操作 作用
s 替換,替換指定字符
d 刪除,刪除選定的行
a 增加,在當前行下面增加一行指定內容
i 插入,在選定行上面插入一行指定內容
c 替換,將選定行替換為指定內容
Y 替換,將選定行替換為指定內容
p 打印,如果同時指定行,表示打印指定行;如果不指定行,則表示打印所有內容;如果有非打印字符,則以ASCII碼輸出。其通常與"-n"選項一起使用。
= 打印行號
l(小寫L) 打印數據流中的文本和不可打印的ASCII字符(比如結束符$、制表符\t)

3.1打印全部內容

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?3.2 查看文件,打印全部內容

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?3.3打印指定行內容

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器?

3.4支持正則表達式,打印范圍內容?

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

3.5#,/關鍵字/p’?從第#行開始匹配

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器?

?3.6?‘/關鍵字/,#’?找到第#個關鍵字為止Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?3.7打印奇偶數行

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

3.8刪除指定行?

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?3.9?先備份內容再刪除

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

3.10??在指定行后插入?

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器?

?3.11修改全局,后面加g

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

3.12?查找?guī)c到幾點之間的日志

Linux:shell腳本 正則表達式與AWK,linux,運維,服務器

?

?

到了這里,關于Linux:shell腳本 正則表達式與AWK的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Linux Shell 腳本編程學習之【第3章 正則表達式 (第一部分)】

    1、正則表達式是由一串字符和元字符構成的字符串,簡稱 RE(Regular Expression)。 2、正則表達式起到數據過濾作用。 3、POSIX 標準將正則表達式分為兩類:基本的正則表達式和擴展的正則表達式,大部分 Linux 應用和工具僅支持基本的正則表達式。 Linux Shell 以一串字符作為表達式

    2024年02月16日
    瀏覽(24)
  • Linux Shell 腳本編程學習之【第3章 正則表達式 (第二部分) grep命令】

    1、文本搜索工具 2、GREP 是Global search Regular Expression and Print out the line的簡稱,即全面搜索正則表達式并把行打印出來。 3、grep命令的模式十分靈活,可以是字符串,也可以是變量,還可以是正則表達式。模式中包含空格,則必須用雙引號括起來。 選 項 意 義 -c 只輸出匹配行

    2024年02月16日
    瀏覽(19)
  • shell腳本正則表達式

    shell腳本正則表達式

    聲明: 以下內容為個人筆記,內容不完全正確,請謹慎參考。 含義: 正則表達式使用的每個單獨字符串來描述、匹配一些列符合語法規(guī)則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。在Linux中,grep,sed,awk等文本處理工具都支

    2024年04月22日
    瀏覽(28)
  • Shell腳本攻略:通配符、正則表達式

    Shell腳本攻略:通配符、正則表達式

    目錄 一、理論 1.通配符 2.正則表達式 二、實驗 1.通配符 2.正則表達式 (1)概念 通配符只用于匹配文件名、目錄名等,不能用于匹配文件內容,而且是已存在的文件或者目錄。 各個版本的shell都有通配符,這些通配符是一些特殊的字符, 用戶可以在命令行的參數中使用這些

    2024年02月07日
    瀏覽(25)
  • Linux三劍客(awk、sed、grep) 和 正則表達式

    Linux三劍客(awk、sed、grep) 和 正則表達式

    本文章適用于一定工作經驗(熟悉Linux基礎)的同行,歡迎各位大佬批判指正。 上手三劍客(grep,sed,awk)之前,需要熟悉正則表達式, 正則表達式 ——事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的

    2024年02月15日
    瀏覽(93)
  • Linux Shell :正則表達式

    Linux Shell :正則表達式

    先來看一句 Shell 代碼: dpkg --list : dpkg 是 Debian 系列 Linux 發(fā)行版(如 Ubuntu)的包管理工具。 --list 選項用于列出所有已安裝的軟件包。 | :這是一個管道符號,用于將前一個命令的輸出作為后一個命令的輸入。在這里, dpkg --list 的輸出被直接傳遞給 grep 命令。 grep -E -o \\\'cu

    2024年02月08日
    瀏覽(49)
  • 正則表達式 —— Awk

    awk:文本三劍客之一,是功能最強大的文本工具 awk也是按行來進行操作,對行操作完之后,可以根據指定命令來對行取列 awk的分隔符,默認分隔符是空格或tab鍵,多個空格會壓縮成一個 awk的用法 awk的格式:awk??選項??\\\'模式或條件{操作}\\\'??文件??????在awk中操作默認就

    2024年02月14日
    瀏覽(21)
  • awk經典實戰(zhàn)、正則表達式

    目錄 1.篩選給定時間范圍內的日志 ?2.統(tǒng)計獨立IP 案列 ?需求 代碼? 運行結果 3.根據某字段去重 案例 運行結果 4.正則表達式 1)認識正則 ?2)匹配字符 3)匹配次數? 4)位置錨定:定位出現的位置 5)分組和后向引用? grep/sed/awk用正則去篩選日志時,如果要精確到小時、分鐘

    2024年02月13日
    瀏覽(18)
  • shell 正則表達式詳解

    shell 正則表達式詳解

    目錄 正則表達式 一,什么是正則表達式 二,為什么使用正則表達式 三,如何使用正則表達式 示例: 四,基本正則表達式 基本正則表達式示例: 正則表達式字符集示例: 五,擴展正則表達式 擴展正則表達式示例: 擴展: ? ? ? ?正則表達式是通過一些特殊字符的排列,

    2024年01月17日
    瀏覽(21)
  • Shell編程之正則表達式

    Linux中的正則表達式(regular expression)和通配符(wildcard)都是用于匹配字符串的工具,但它們之間存在一些區(qū)別和應用場景的不同。 正則表達式是描述一種字符串匹配的模式,通過特殊的字符和語法,可以檢查一個字符串是否匹配某種模式,匹配成功后可以進行子串替換、取出符

    2024年02月01日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包