亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 正則表達式中,由'和"引發(fā)的.......血案 [打印本頁]

作者: kevin.tan    時間: 2009-11-28 11:34
標題: 正則表達式中,由'和"引發(fā)的.......血案
被'和"搞迷糊了,

環(huán)境

  1. Byrouter:~# sh --version
  2. sh --version
  3. GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
  4. Copyright (C) 2005 Free Software Foundation, Inc.
  5. Byrouter:~# grep --version
  6. grep --version
  7. grep (GNU grep) 2.5.1

復制代碼


文本

  1. Byrouter:/tmp# cat reg
  2. n
  3. \n
  4. \\n
復制代碼


我想解中的'和"不同,并驗證:

  1. Byrouter:~# echo '\\'
  2. \\
  3. Byrouter:~# echo '\\n'
  4. \\n
  5. Byrouter:~# echo "\\"
  6. \
  7. Byrouter:~# echo "\\n"
  8. \n
復制代碼

與教材中的說明無誤,在'中,轉義符\被當作普通字符處理,直接輸出,在"中,轉義符\被賦于轉義功能,轉義符后的特殊字符當作普通字符處理,直接輸出,OK,一切正常,但......血案還是發(fā)生了,在上述的文本中

Byrouter:/tmp# grep --color "\\n" reg
n
\n
\\n
Byrouter:/tmp# grep --color '\\n' reg
\n
\\n


請教DX指點,謝過先了,由于[code]中不支持顏色(可能支持,我不會搞),為還原真實情況,輸出未放在[code]中

[ 本帖最后由 kevin.tan 于 2009-11-28 11:38 編輯 ]
作者: __lxmxn__    時間: 2009-11-28 11:54
\n被grep處理還需要轉義一次
作者: kevin.tan    時間: 2009-11-28 12:14
原帖由 __lxmxn__ 于 2009-11-28 11:54 發(fā)表
\n被grep處理還需要轉義一次



謝謝_lxmxn兄,您的意思是我的貼子中'和"的表達是無誤的,產(chǎn)生差異的輸出是grep帶來的對嗎?

對于您說的,\n被grep處理還需要轉義一次,我理解不是很明白,能說得再詳細點嗎?
作者: lululau    時間: 2009-11-28 19:35
對grep來說,模式'\n'和模式'n'是等價的
作者: blackold    時間: 2009-11-28 23:11
Byrouter:/tmp# grep --color "\\n" reg
;grep看到的是\n

Byrouter:/tmp# grep --color '\\n' reg
;grep看到的是\\n
作者: kevin.tan    時間: 2009-11-30 09:57
原帖由 lululau 于 2009-11-28 19:35 發(fā)表
對grep來說,模式'\n'和模式'n'是等價的


哦,原來問題在這里,謝謝lululau兄的指教

我再找下grep的文檔翻翻
作者: kevin.tan    時間: 2009-11-30 09:59
原帖由 blackold 于 2009-11-28 23:11 發(fā)表
Byrouter:/tmp# grep --color "\\n" reg
;grep看到的是\n

Byrouter:/tmp# grep --color '\\n' reg
;grep看到的是\\n


是的,黑哥,我的理解同你一樣,

但輸出并不是與我們想的,

Byrouter:/tmp# grep --color "\\n" reg
;grep看到的是\n,但匹配的卻是n,可以原因卻實是樓上兄弟所說的。
作者: ly5066113    時間: 2009-11-30 10:32
標題: 回復 #7 kevin.tan 的帖子
grep 默認使用BRE解析,會把\n解析成n
如果想要字符串查找,可使用grep -F 或者 fgrep
作者: kevin.tan    時間: 2009-11-30 10:59
原帖由 ly5066113 于 2009-11-30 10:32 發(fā)表
grep 默認使用BRE解析,會把\n解析成n
如果想要字符串查找,可使用grep -F 或者 fgrep




卡卡,謝謝ly5066113兄的精彩回復,謝謝

[ 本帖最后由 kevin.tan 于 2009-11-30 11:06 編輯 ]
作者: blackold    時間: 2009-11-30 11:19
標題: 回復 #7 kevin.tan 的帖子
結果并沒有讓我們驚訝啊。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2