關於 alnum 問題請教?(shell)

時間 2021-11-05 20:33:02

1樓:Keen Wang

問題1:

^是配合一起用的,[^]的意思是匹配不在其範圍中的字元。如[^A-Z],即是匹配不是A-Z的字元。你的sed例子中[:

alnum:]是指代」字母加上數字的意思,而「[^[:alnum:

]],則表示匹配非字母和數字的字元。

問題2:

兩個分別代表不同的意思,如[[:alnum:]],外面的表示正規表示式中」匹配乙個指定範圍內的字元 「,而[:

alnum:]則是乙個整體,指代字母加上數字。sed中語法s/regexp/replacement/的使用中,regexp指代正規表示式。

你的例子中

s/[:alnum:]//g,會被解釋成」匹配乙個指定範圍內的字元「,即所有字面意思的:,a,l,n,u,m這些字元,而不再是

[:alnum:]這乙個整體。

這就是為什麼你執行「sh ./test.sh 009/a008」會去掉乙個「a」,是因為「a」被匹配並且替換為空了,你輸入「sh .

/test.sh 009/m008」,「m」也是會被替換的。如果你需要匹配」字母加上數字「這一概念,則必須使用把 [:

alnum:]這乙個整體再包含起來。

PS:sh ./test.

sh 009/ 008 這樣的執行是不正確的,你的指令碼中$1的意思是指「指令碼傳入的第乙個引數」,而你在執行test.sh時「009/」與"008"之間有空格,這樣就變成了傳入兩個引數了,所以第二個引數"008"沒有被指令碼處理。

關於資料,首先看"man sed",然後再看正規表示式介紹就可以了。有一本介紹sed和awk專業的書叫《Linux O'Reilly SED and AWK》,你可以看看。

請教關於異地寄押的問題。?

棠三哥 這個問題,法制已經說過多少遍了,必須按照拘留證時間!3天不夠,可以辦延長,但是絕對不能拘留超過7天或者30日,不存在路程時間,超時可以跟檢察院協調用7天的批捕時間,但是記住了肯定不能超期! 瑋大兔子 抓獲後你把人放哪?只要出示拘留證臨時羈押了就計算羈押期限,以前還有在路上時間過長確實無法趕回...

請教幾個關於李廣不封的小問題?

易知易行 當是之時,匈奴新大入朝?殺北地都尉卬。上以胡寇為意,乃卒復問唐曰 公何以知吾不能用廉頗 李牧也?唐對曰 臣聞上古王者之遣將也,跪而推轂,曰閫以內者,寡人制之 閫以外者,將軍制之。軍功爵賞皆決於外,歸而奏之。此非虛言也。臣大父言,李牧為趙將居邊,軍市之租皆自用饗士,賞賜決於外,不從中擾也。委...

請教三個關於歷史的問題?

大風歌 關於蜀漢的權力布局,推薦田餘慶先生的名篇 李嚴興廢與諸葛用人 蜀史四題 尤其是 劉備託孤語 第二個問題 不用揣測,參考經典軍事著作,依靠什麼人,重金該怎麼花說的很清楚了 孫子兵法 用間篇 故用間有五 有因間,有內間,有反間,有死間,有生間。五間俱起,莫知其道,是謂神紀,人君之寶也。因間者,因...