|
藍森林 http://www.lslnet.com 2006年6月26日 11:18
請教一個保存運算符裡面的匹配問題
創建一個只包含常規文件名及其權限的列表,替代命令的第一個正則表達式保存權限,第二個保存文件名。
$ls -l|sed -n "/^-/s/\(-[^ ]*\).*:..\(.*\)/\1\2/p"
問:第一個保存運算符裡買內的正則表達式\(-[^ ]*\)是什麼意思?
經過驗證,是正確的,但是我還是不明白\(-[^ ]*\)是什麼意思?
小弟剛剛開始學習shell.請高人幫忙解惑。
ex:
$ ls -l
total 192
-rw-r--r-- 1 lbas latn 66 May 10 10:18 addLines.awk
-rw-r--r-- 1 lbas latn 30 May 10 10:14 addLines.sed
-rw-r--r-- 1 lbas latn 171 May 9 10:23 countWdLns.awk
-rw-r--r-- 1 lbas latn 65 Apr 9 13:49 inserTitle.sed
-rw-r--r-- 1 lbas latn 15 Apr 9 14:17 insertBlankLines.sed
-rw-r--r-- 1 lbas latn 9 Apr 9 14:19 insertBlankLines2.sed
-rw-r--r-- 1 lbas latn 19 Apr 21 19:21 letterHead.dat
-rw-r--r-- 1 lbas latn 19 Apr 21 19:22 letterTail.dat
-rw-r--r-- 1 lbas latn 39 Apr 21 19:19 readFile.sed
-rw-r--r-- 1 lbas latn 177 May 10 10:45 the
-rw-r--r-- 1 lbas latn 2747 Apr 9 13:48 yxy_normal.log
-rw-r--r-- 1 lbas latn 282 Apr 21 19:22 yxy_normal1.log
$ ls -l|sed -n "/^-/s/\(-[^ ]*\).*:..\(.*\)/\1\2/p"
-rw-r--r-- addLines.awk
-rw-r--r-- addLines.sed
-rw-r--r-- countWdLns.awk
-rw-r--r-- inserTitle.sed
-rw-r--r-- insertBlankLines.sed
-rw-r--r-- insertBlankLines2.sed
-rw-r--r-- letterHead.dat
-rw-r--r-- letterTail.dat
-rw-r--r-- readFile.sed
-rw-r--r-- the
-rw-r--r-- yxy_normal.log
-rw-r--r-- yxy_normal1.log |
請教一個保存運算符裡面的匹配問題
- 後接一連串非空白鍵 |
請教一個保存運算符裡面的匹配問題
知道了,其實\(-[^ ]*\)就是以-開始不匹配空格,意思就是遇到空格就不匹配結束了。
謝謝! |
| |