當前位置:首頁 » 操作系統 » linux匹配符

linux匹配符

發布時間: 2022-05-16 08:44:18

linux sed awk命令結合匹配符 根據第二行內容,替換第一行內容 可以寫成shell腳本

我也給個思路吧 —— 用sed根據地址范圍截取文件內容,用Here documents方法添加新的多行內容,然後重組文件。具體步驟如下:

1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;
2)將要添加的內容根據變數值展開,附加寫入tmp文件;
3)截取test.xml文件</abcdef>行到結束行,附加寫入tmp文件。
4)移動tmp文件覆蓋test.xml文件。

代碼:
12345678910111213#!/bin/sh$hostnames="host1,host2,host3 ..."$paragraph="many_strings"sed -n '1,/^<abcdef>/p' test.xml >tmpcat <<EOF >>tmpfor hname in `echo "$hostnames" | tr ',' ' '`do insert $hname insert $paragraphdoneEOFsed -n '/^<\/abcdef>/,$p' test.xml >>tmpmv tmp test.xml
注意:
1) for a in b 結構中,b集合里的內容必需要空格分隔。所以我這里做了轉換,用tr命令將逗號分隔改為了空格分隔。
2)第二個EOF必需頂格寫,前面不能有空格。

❷ linux通配符有幾種表達方式

通配符 1、基本的通配符有哪些? ·「?」可替代單個字元。 ·「*」可替代任意字元。 ·方括弧「[charset]」可替代charset集中的任何單個字元。 對最後一條做些解釋。[cChH]通配符便可替代c或h字元的大小寫形式。 通配符集還能描述介於字元對之間的所有字元。如「[a-z]」就可以代 替任意小寫字母,而[a-zA-Z]則可替代任意字母。注意可替代的字元 包括字元包括字元對之間的所有字元。 與DOS相比,UNIX的通配符機制要比DOS好得多。在DOS中,任何在「*」 之後,在「.」之彰的字元均被忽略,所以下面的指令將不能得到你想 象的結果。 del *bak.* 在DOS中,用戶只能用此命令刪除當前目前下的所有文件,除非系統要 求你不這樣做。而在UNIX系統中,「*」可替代包括0在內的任意數字的 字元,但一行中的其餘特徵也仍需匹配,因此「bak.*」可匹配 newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因為後 者不含「.」。這非常巧妙,可大大方便用戶,而「*bak」則可匹配以上 所有的詞條,包括newbak。 2、能在一條指令中用多個通配符嗎? 可以,如 rm a*out*tmp? 該命令可以刪除一系列臨時性的輸出文件,如ab.out.temp1、ab.out.temp1 等。 3、如何利用通配符使指令更靈活? UNIX可將有一定關的文件看作一集合的一部分,用戶可以用該集合去匹配。 所以,如果你需要刪除file1.temp、file2.temp……file9.temp,只須健入: rm file[0-9].temp 該技巧的用處在於可以用刪除那些相要刪除的文件。如果你每天都要為一個 非常重要的 資料庫 做一個「mp」報告,你把文件存入mp.date%h%d, 它包括一系列文件如下: mp.jun23 mp jun24 mp jun25 mp.jun26 再讓我們假設因為每個文件的容量都在100M左右,所以磁碟空間很快會被占滿, 因此需要每隔幾天刪去一些老的文件,只留下最近的兩個文件,為此,鍵入: rm –i *[34] 這條指令將刪去那些以「」開頭並以「3」或「4」結尾的文件。

❸ linux通配符與正則符號的區別

grep dev[.]hda /etc/fstab和grep "dev\.hda" /etc/fstab出來的結果應該是一樣的
grep dev[.]hda /etc/fstab中[]是正則表達式的取值范圍,如果你改成[a.]這樣他會查找dev.hda和devahda兩個。只要要匹配的行中出現的任意一個[]裡面的字元即可
grep "dev\.hda" /etc/fstab中\是轉義字元,「\.」這里表示「."只表示"."本身的意思,不是作為任意字元。在正則表達式裡面'.'是表示任意以字元。如果grep "dev\.hda" /etc/fstab改成grep "dev.hda" /etc/fstab,那麼只要出現「dev[中間任意一個字元]hda」就都能匹配成功。
通配符也是正則符號一種。正則表達式看似簡單,實際上要掌握也很不容易,我也只是知道點皮毛。

❹ * 在linux 中是什麼意思

* 代表0個或者多個特殊字元

在shell中也代表任意字元,比如ls a*,就是列出所用a開頭的文件,

其他命令具體的參考如下:
1. > 重定向輸出符號。
2. >>重定向輸出符號,但有追加的功能。
3. 2>錯誤重定向輸出符號,覆蓋原文件內容。
4. 2>>錯誤重定向輸出符號,有文件內容追加的功能。重定向:I/O。Linux Shell 環境中支持輸入輸出重定向,用符號<和>來表示。0、1和2分別表示標准輸入、標准輸出和標准錯誤信息輸出,可以用來指定需要重定向的標准輸入或輸出,比如 2>a.txt 表示將錯誤信息輸出到文件a.txt中。
5. * 代表0個或者多個特殊字元
6. ?匹配任意一個字元。
7. | 管道符號。解釋:command1|command2,將command1的輸出作為command2的輸入,比如ls -al|less,表示將ls -al的輸出作為less的輸入,即將la -al的輸出分頁。管道命令只接受標准輸入(standoutput)。
8. & 後台進程符。
9. &&l邏輯與符號。用法:命令1 && 命令2 表示如果命令1執行成功,繼續執行命令2。
10.|| 邏輯或符號。用法:命令1 | | 命令2 表示如果命令1執行成功,不執行命令2;但如果命令1執行失敗才執行命令2。
&&與||,命令執行是順序進行的,沒有優先順序
11.!邏輯非符號。排除指定范圍。例:ls a[!0-9]
12.[x-y]表示一定的范圍。學習Linux,知道Linux命令很重要,所以建議多看看Linux命令介紹,推薦《Linux命令大全(手冊)》,搜索方式如下:

13.# 注釋符;符合替換文字最短的那一個。14.」 」 雙引號表示把它所包含的內容作為普通字元,但` ` $ 『 『 幾個符號除外。15.』 』 單引號表示把它所包含的內容作為普通的字元,無特殊例外。16.$ 變數符,提取變數,如echo $HOME,查看變數;正則表達式中表示行首。17. 轉義字元,就是將特殊字元轉換成其本來的普通字元的意思。18.``反單引號,表示它所包含的內容。一般作為嵌入的命令使用,此命令將先執行。19.;命令分隔符。20.< 重定向輸入符。21.()表示整體執行命令。22.^反向選擇符,例:grep -n '^[^a-zA-Z]' wokao.txt,[]內的叫反向選擇符,[]外的則表示定位在行首。查找行首不是英文字母的行。23. . 點該表任意字元串

❺ 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命令環境中的通配符有哪些它們的不同點是什麼

通配符 1、基本的通配符有哪些? ·「?」可替代單個字元。 ·「*」可替代任意字元。 ·方括弧「[charset]」可替代charset集中的任何單個字元。 對最後一條做些解釋。[cChH]通配符便可替代c或h字元的大小寫形式。 通配符集還能描述介於字元對之間的所有字元。如「[a-z]」就可以代 替任意小寫字母,而[a-zA-Z]則可替代任意字母。注意可替代的字元 包括字元包括字元對之間的所有字元。 與DOS相比,UNIX的通配符機制要比DOS好得多。在DOS中,任何在「*」 之後,在「.」之彰的字元均被忽略,所以下面的指令將不能得到你想 象的結果。 del *bak.* 在DOS中,用戶只能用此命令刪除當前目前下的所有文件,除非系統要 求你不這樣做。而在UNIX系統中,「*」可替代包括0在內的任意數字的 字元,但一行中的其餘特徵也仍需匹配,因此「bak.*」可匹配 newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因為後 者不含「.」。這非常巧妙,可大大方便用戶,而「*bak」則可匹配以上 所有的詞條,包括newbak。 2、能在一條指令中用多個通配符嗎? 可以,如 rm a*out*tmp? 該命令可以刪除一系列臨時性的輸出文件,如ab.out.temp1、ab.out.temp1 等。 3、如何利用通配符使指令更靈活? UNIX可將有一定關的文件看作一集合的一部分,用戶可以用該集合去匹配。 所以,如果你需要刪除file1.temp、file2.temp……file9.temp,只須健入: rm file[0-9].temp 該技巧的用處在於可以用刪除那些相要刪除的文件。如果你每天都要為一個 非常重要的 資料庫 做一個「mp」報告,你把文件存入mp.date%h%d, 它包括一系列文件如下: mp.jun23 mp jun24 mp jun25 mp.jun26 再讓我們假設因為每個文件的容量都在100M左右,所以磁碟空間很快會被占滿, 因此需要每隔幾天刪去一些老的文件,只留下最近的兩個文件,為此,鍵入: rm –i *[34] 這條指令將刪去那些以「」開頭並以「3」或「4」結尾的文件。

❼ Linux的基本命令格式如何Linux下經常使用的通配符有哪些

Linux 命令的基本格式:

[root@localhost ~]# 命令[選項][參數]
命令格式中的 [] 代表可選項,也就是有些命令可以不寫選項或參數,也能執行。那麼,我們就用 Linux 中最常見的 ls 命令來解釋一下命令的格式(有關 ls 命令的具體用法,後續章節會詳細介紹)。如果按照命令的分類,那麼 ls 命令應該屬於目錄操作命令。

[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog
linux常用通配符有* ,?,[ ],[^],[:space:],[:punct:],[:lower:],[:upper:],[:digit:],[:alnum:]等等。可參考下《Linux就該這么學》了解更多Linux知識。

❽ linux 變數值中匹配字元

#!/bin/sh
#來自:DZ動力

i="1:sads:212:354"
echo$i|grep"^[0-9]:sads"

❾ linux 通配符%.c和*.c區別

%.c是GUNmake語法層,表示的是所有以".c"結尾的文件
而*.c則是linux shell 語法層的,比如:rm -f *.o 類似的。
意思基本是一樣的,就是一個是GUNmake的一個是shell的

❿ linux通配符怎麼匹配"\"

假如你的文件存放在abc.txt文件中,那麼你執行cat.\abc.txt|grep"hello",顯示包含hello的行,支持通配符。至於更復雜的顯示方式,你可以在ubuntu的命令行上執行grep-h、grep--help等等來獲得幫助,如果樓主是想學些linux下的腳本的話,建議專門找一本書來看,這樣比較系統,不會每次都問一個特定的問題。

熱點內容
精準扶貧資料庫 發布:2024-10-11 03:14:13 瀏覽:466
我的世界伺服器被ban改ip有用嗎 發布:2024-10-11 02:32:04 瀏覽:781
rc4加密及解密 發布:2024-10-11 02:31:30 瀏覽:3
安卓手機有什麼免費音樂軟體 發布:2024-10-11 02:17:07 瀏覽:991
阿里雲伺服器須知 發布:2024-10-11 02:12:55 瀏覽:416
androidaaptexe 發布:2024-10-11 01:49:48 瀏覽:348
用手機怎麼連wifi密碼 發布:2024-10-11 01:35:29 瀏覽:59
微信平台無法上傳圖片 發布:2024-10-11 00:55:59 瀏覽:140
加密鎖折斷 發布:2024-10-10 23:57:30 瀏覽:149
上傳活動成果 發布:2024-10-10 23:48:27 瀏覽:189