藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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

請教一個保存運算符裡面的匹配問題

- 後接一連串非空白鍵

請教一個保存運算符裡面的匹配問題

知道了,其實\(-[^  ]*\)就是以-開始不匹配空格,意思就是遇到空格就不匹配結束了。
謝謝!



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com