酷!學園

技術討論區 => Linux 討論版 => 主題作者是: apachectl 於 2014-06-19 22:51

主題: (已解決)regexp 中 extended RE 的問題
作者: apachectl2014-06-19 22:51
用 egrep 指令想要找出該行是以大寫字母做起始或是找出空白行,需怎麼執行? 我這樣下指令:
# egrep '^[A-Z]|^$' file

但列出的結果連部分小寫字母開頭的那幾行也會列出來。

是哪裡做錯嗎 ?
主題: Re: regexp 中 extended RE 的問題
作者: netman2014-06-21 11:10
這樣呢?
'(^[A-Z]|^$)'
主題: Re: regexp 中 extended RE 的問題
作者: Yamaka2014-06-21 12:26
試了一下(ubuntu):

引用
$ cat tf.txt
123
456
Aa aa
bB BB

Cc cc
dD DD
eE EE
fF FF

Gg gg
hH HH
iI II
jJ JJ
kK KK
Ll ll
mM MM
nN nn

$ egrep '^[A-Z]|^$' tf.txt
Aa aa

Cc cc

Gg gg
Ll ll

$

看起來很正常
主題: Re: regexp 中 extended RE 的問題
作者: apachectl2014-06-21 13:31
加上() 還是一樣。
有人是在centos .fedora 或 redhat 上面測試的嗎? 我是在 redhat 上面做的
主題: Re: regexp 中 extended RE 的問題
作者: Yamaka2014-06-21 15:22
centos 5.4 x64 測試是正常的, centos 6.0 x64 就不行了

只試 ‘^[A-Z]’ 或 ‘^$’ 則正常,或是 ‘^[A-Z] |(非 ^$)’ 也都正常

^$ 跟其他的組合就無效,應該是 bug 吧!
主題: Re: regexp 中 extended RE 的問題
作者: netman2014-06-21 18:22
locale 是什麼?
主題: Re: regexp 中 extended RE 的問題
作者: apachectl2014-06-21 20:26
目前試過
LANG=en_US.UTF-8
LANG=zh_TW.UTF-8

但都還是有問題。
主題: Re: regexp 中 extended RE 的問題
作者: netman2014-06-22 01:29

LANG=C
呢?
主題: Re: regexp 中 extended RE 的問題
作者: apachectl2014-06-22 08:09
BINGO
編碼問題啦
THX