當前位置:首頁 » 操作系統 » linux表達式

linux表達式

發布時間: 2022-05-05 07:42:43

『壹』 linux下的正則表達式,幫忙解釋一下

man
bash:翻閱關於bash的用戶手冊頁,查看其相關的功能和描述。
|:將前面的命令輸出的內容以後面的命令再處理。
col
-b:過濾掉所有的控制字元,包括RLF和HRLF(使得顯示出來的文本沒有亂碼)。
>:將前面的命令輸出的內容保存到後面所述的文件中。
綜合起來,就是把bash的用戶手冊頁的內容,去掉亂碼(控制字元)之後,輸出到當前目錄下的bash.txt內。
當命令得到執行,則當前目錄下會出現一個bash.txt文件,裡面的內容正是man手冊內關於bash的幫助和介紹。

『貳』 linux中 正則表達式和通配符的區別

通配符
它是由shell解析,並且一般用於匹配文件名,實際上就是shell解釋器去解析的特殊符號,linux系統通配符有幾下幾種:
*:匹配任意多個字元
?:匹配任意一個字元
[...]:匹配中括弧內出現的任意一個字元
[!...]:不匹配中括弧內出現的任意一個字元

一般出現在要shell命令或腳本中,匹配特定的文件名

正則表達式
它是一個字元匹配標准,一些命令工具按此標准實現字元匹配,根據命令支持的匹配功能可分為基礎正則表達式和擴展正則表達式,常用於支持正則表達式的工具,如sed,grep,awk...
有如下一些常用的匹配元字元:

字元匹配
.:匹配任意單個字元
*:匹配其前面一個字元出現任意次
?:匹配其前面的字元1次或0次
+:匹配其前面一個字元出現至少一次(在擴展正則表達式中)

位置匹配
^:錨定行首
$:錨定行尾
\<或\b:錨定詞首,其後面的任意字元必須作為單詞首部出現
\>或\b:錨定詞尾,其前面的任意字元必須作為單詞尾部出現
\B:非單詞的開頭或結尾
^$:空白行

分組() :
(ab)* : 匹配ab這個分組出現任意次
\1:引用第一個左括弧以及與之對應的右括弧所包括的所有內容,同理還有\2,\3

特殊子字元類:
[:alnum:] :任何字母和數字
[:alpha:] :任何字母
[:cntrl:] :控制字元. 在ASCII表中對應八進制000 到 037, 和177 ('DEL').
[:digit:] :任何數字
[:graph:] :匹配列印字元,相當於'[:alnum:]' +'[:punct:]'.
[:lower:] :小寫字母
[:print:] :可列印字元,相當於 '[:alnum:]', '[:punct:]', 和space.
[:punct:] 標點符號,'! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ' { | } ~'
[:space:] 空白字元,tab, newline, vertical tab, form feed, carriage return, and space.
[:upper:] 大寫字母
[:xdigit:] 任何16進制的數字,相當於[0-9a-fA-F]
所以:^[[:space:]]*$ :匹配沒有任何內容的行

需要注意:[]中的特殊字元如.已經失去了其特殊含義,和方括弧中的普通字元[abc]一樣。

『叄』 linux 正則表達式中 ^[^d] 怎麼理解

最前的
^
表示開頭.就是之前再沒有其它的.
[
]之間的^
表示非,就是[^\d]就是非數字,如果是[^d]就只是非d這個字母.

『肆』 linux 中 ^[^abc] 正則表達式什麼意思

^代錶行首,$代錶行尾
1、^[a-z]匹配以小寫字母開頭的字元串
2、[^a-z] 不包含小寫字母的字元匹配
3、^[^a-z] 開頭不包含小寫字母的字元匹配

『伍』 linux shell 指令 諸如-d, -f, -e之類的判斷表達式

文件比較運算符-e filename

  • 如果 filename存在,則為真 [ -e /var/log/syslog ]-d filename

  • 如果 filename為目錄,則為真 [ -d /tmp/mydir ]-f filename

  • 如果 filename為常規文件,則為真 [ -f /usr/bin/grep ]-L filename

  • 如果 filename為符號鏈接,則為真 [ -L /usr/bin/grep ]-r filename

  • 如果 filename可讀,則為真 [ -r /var/log/syslog ]-w filename

  • 如果 filename可寫,則為真 [ -w /var/mytmp.txt ]-x filename

  • 如果 filename可執行,則為真 [ -L /usr/bin/grep ]filename1-nt filename2

  • 如果 filename1比 filename2新,則為真 [ /tmp/install/etc/services -nt /etc/services ]filename1-ot filename2

  • 如果 filename1比 filename2舊,則為真 [ /boot/bzImage -ot arch/i386

/boot/bzImage ]字元串比較運算符 (請注意引號的使用,這是防止空格擾亂代碼的好方法)

  • -z string 如果 string長度為零,則為真 [ -z "$myvar" ]-n string 如果 string長度非零,則為真 [ -n "$myvar" ]

  • string1= string2 如果 string1與 string2相同,則為真 [ "$myvar" = "one two three"]

  • string1!= string2 如果 string1與 string2不同,則為真 [ "$myvar" != "one two three" ]

算術比較運算符num1-eq num2 等於 [ 3 -eq $mynum ]

  • num1-ne num2 不等於 [ 3 -ne $mynum ]num1-lt num2 小於 [ 3 -lt $mynum ]

  • num1-le num2 小於或等於 [ 3 -le $mynum ]num1-gt num2 大於 [ 3 -gt $mynum ]

  • num1-ge num2 大於或等於 [ 3 -ge $mynum ]

拓展資料:

Linux操作系統

是基於UNIX操作系統發展而來的一種克隆系統,它誕生於1991 年的 [Linux桌面] 10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。

『陸』 linux正則表達式

sed 's/#.*$//g' 把#開頭的行替換成空行
sed '/^$/d' 把空行刪掉
s是替換

g是指替換掉所有符合條件的
d是刪除
^行的開頭
$行的結尾
.除 "\n" 之外的任何單個字元
*前面的子表達式零次或多次

『柒』 Linux命令詳解之正則表達式


特殊字元
^
行首
$
行尾
.
任意一個字元
[]
內含字元范圍,加^表示反向字元范圍,在該范圍內任何一個字元都可以匹配
(若要恢復普通用法,可在其前加轉義字元/)
[:alnum:]
字母與數字字元
[:alpha:]
字母
[:ascii:]
ascii字元
[:blank:]
空格或製表符
[:cntrl:]
ascii控制字元
[:digit:]
數字
[:graph:]
非控制、非空格字元
[:lower:]
小寫字母
[:print:]
可列印字元
[:punct:]
標點符號字元
[:space:]
空白字元,包括垂直製表符
[:upper:]
大寫字母
[:xdigit:]
十六進制數字
其他字元
?
至多匹配一次
*
必須匹配0次或多次
+
必須匹配1次或多次
{n}
必須匹配n次
{n,}
必須匹配n次或n次以上
{n,m}
必須匹配在n到m次之間,包括n和m
示例
查找當前目錄下所有以一位數字命名且以.txt結尾的文件,並進行顯示
find
.-name
[[:digit:]]/.txt
-ok
ls
-l
{}
/;
查找所有以.txt結尾的文件並顯示
find
.
-name[[:alnum:]]*/.txt
-ok
ls
-l
{}
/;

『捌』 Linux中,什麼是正則表達式

正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表通常被用來檢索、替換那些符合某個模式(規則)的文本。

『玖』 linux 正則表達式怎麼匹配

php">一.linux文本查找命令
在說linux正規表達式之前,還介紹下linux中查找文本文件常用的三個命令:
1.grep:最早的文本匹配程序,使用POSIX定義的基本正則表達式(BRE)來匹配文本。
2.egrep:擴展式grep,其使用擴展式正規表達式(ERE)來匹配文本。
3.fgrep:快速grep,這個版本匹配固定字元串而非正則表達式。並且是唯一可以並行匹配多個字元串的版本。
如下簡單的介紹grep命令:
語法格式:
grep[options...]pattern-spec[files...]
用途:
匹配一個或多個模式的文本行。
options:
-E:使用擴展正則表達式進行匹配,grep-E或取代egrep命令。
-F:使用固定字元串進行匹配,grep-F或取代傳統的fgrep命令。
-e:通常第一個非選項的參數認為是要匹配的模式,也可以同時提供多個模式,只要將其放入單引號,並用換行字元分隔他們。
模式以減號開頭時,為防止混淆其為選項,-e選項說明其後的參數為模式,即使他以減號開頭。
-f:從pat-file文件讀取模式作為匹配。
-i:模式匹配時忽略大小寫差異。
-l:列出匹配模式的文件名稱,而不是列印匹配的行。
-q:靜默的,如果匹配成功,不將匹配的行輸出到標准輸出;否則即是不成功。
-s:不顯示錯誤信息,通常與-q並用。
-v:顯示不匹配模式的行。
說明:可以同時查找多個文件中的內容,當指定多個文件時,每個顯示出的文件行前會有文件名加一個冒號標識其來自哪個文件。
可以使用多個-e或-f選項,建立要查找的模式列表。
二.正則表達式簡要介紹
1.正則表達式的組成
(1).一般字元:沒有特殊意義的字元
(2).特殊字元(meta字元):元字元,有在正則表達式中有特殊意義
2.如下講下正則表達式中的常見meta字元
(1).POSIXBRE與ERE中都有的meta字元:
:通常用於打開或關閉後續字元的特殊含義,如(...)與{...}
.:匹配任何單個字元(除NUL)
*:匹配其前的任何數目或沒有的單個字元,例:.表示任一字元,則.*匹配任一字元的任意長度
^:匹配緊接著的正則表達式,BRE中僅在正則表達式的開頭有特殊的含義,ERE中在任何位置都有特殊含義
$:匹配前面的正則表達式,在字元串或者行結尾處。BRE中僅在正則表達式的結尾處有特殊的含義,ERE中在任何位置都有特殊含義
[]:匹配方括弧內的任一字元,其中可用連字元(-)指的連續字元的范圍;^符號苦出現在方括弧的第一個位置,則表示匹配不在列表中的任一字元,
(2).POSIXBRE中才有的字元:
{n,m}:區間表達式,匹配在它前面的單個字元重現的次數區別。{n}指重現n次;{n,m}指重現n至m次;
():保留空間,可以將最多9個獨立的子模式存儲在單個模式中。如(ab).*1:
指匹配ab組合的兩次重現,中間可存在任意數目的字元。
:重復在(與)方括弧內第n個子模式至此點的模式。
(3).POSIXERE中才有的字元:
{n,m}:與BRE的{n,m}功能相同
+:匹配前面正則表達式的一個或多個擴展
?:匹配前面正則表達式的零個或一個擴展
|:匹配|符號前或後的正則表達式
():匹配方括弧括起來的正則表達式群
(4).方括弧([])表達式
4.1.字元集[::]
標識字元集,有如下幾種:
[::alnum]
:數字字元
[:digit:]
:數字字元
[:punct:]
:標點符號字元
[:alpha:]
:字母字元
[:graph:]
:非空格字元
[:space:]
:空格字元
[:blank:]
:空格與定位字元
[:lower:]
:小寫字母字元
[:upper:]
:大寫字母字元
[:cntrl:]
:控制字元
[:print:]
:可顯示的字元
[:xdigit:]
:16進制數字
4.2.排序符號
指將多個字元視為一個符號,如[.ch.]即將ch視為一個符號
4.3.等價字元
認為多個字元相等,如[=e=]在法文的locale里,可匹配於多種與e相似的字元,此處不再列出。
說明:這三種構造除其自身的方括弧之外,還必須使用額外的方括弧括起來。
例:[[:alpha:]!]:匹配任一英文字母或感嘆號。
[[.ch.]:匹配ch排序元素,而不匹配單獨的字母c或h.
3.簡單正規表達式匹配案例
china:匹配此行中任意位置有china字元的行
^china:匹配此以china開關的行
china$:匹配以china結尾的行
^china$:匹配僅有china五個字元的行
[Cc]hina:匹配含有China或china的行
Ch.na:匹配包含Ch兩字母並且其後緊跟一個任意字元之後又有na兩個字元的行
Ch.*na:匹配一行中含Ch字元,並且其後跟0個或者多個字元,再繼續跟na兩字元
二.實例
如下通過常用實例來學習BRE和ERE匹配,源文件url.txt內容如下:
www..comhttp://www..comhttps://www..comhttp://wwwcom.com
1.url匹配
匹配以http或者https開頭,並且其後為:並且含有.的串
BRE匹配:
grep'^https{0,1}.*..*'url.txt
ERE匹配:
grep-E'^https?.*..*'url.txt
匹配結果如下:
http://www..comhttps://www..com
2.Email匹配
示例文件內容為:
[email protected]@[email protected]@gmail.com
@@.com
匹配以字母數字或者下劃線開頭的多個字元,其後有一個@之後有多個字母數字或者下劃線,其中有一個.號
grep'^[[:alpha:][:digit:]_]*@[[:alpha:][:digit:]]*..*'email.txt
匹配結果:
[email protected]@[email protected]
先到這里,後續再接著寫。

『拾』 linux裡面的規則表達式、正則表達式、擴展表達式的定義

規則表達式=正則表達式
,都是
regular
expression
他的定義是
"是用某種模式去匹配一類字元串的一個公式"
擴展表達式我想你說的應該是
擴展正則表達式
他是正則表達式規范的補充
這個就沒什麼定義了
也就是添加了一些范圍匹配和通配匹配
比如
.
[a-z]

這些都是擴展正則表達式的范圍
另外說一點
grep命令支持的正則表達式是標准正則表達式
,而
egrep
(grep
-E)
支持擴展正則表達式匹配
事實上
目前大部分使用的正則表達式都是擴展正則表達式

熱點內容
如何刪除手機中的游戲緩存 發布:2024-10-07 02:11:28 瀏覽:873
解鎖資料庫用戶 發布:2024-10-07 01:55:54 瀏覽:826
關系資料庫的關鍵字是指 發布:2024-10-07 01:55:54 瀏覽:517
java資料庫date 發布:2024-10-07 01:55:21 瀏覽:458
安卓12如何開通運用許可權 發布:2024-10-07 01:29:54 瀏覽:134
電腦顯示已連接圖形伺服器 發布:2024-10-07 01:24:38 瀏覽:797
如何恢復手機伺服器的時速 發布:2024-10-07 01:22:30 瀏覽:749
c語言六套 發布:2024-10-07 01:22:26 瀏覽:383
安卓手機系統文件存在哪裡 發布:2024-10-07 01:21:30 瀏覽:898
編譯原理文字題 發布:2024-10-07 00:53:58 瀏覽:332