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


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請高手指導這個grep的問題

平台:hp-ux
shell:csh
問題:
  假如日期為Mar 16
   ls -la | grep -v "Mar 16" 可過濾Mar 16日的文件和目錄
  
  然後這個
  date|awk '{printf("\"%s%3s\"\n",$2,$3)}'輸出為"Mar 16",

但是這個
  ls -la | grep -v `date|awk '{printf("\"%s%3s\"\n",$2,$3)}'`
   回車後報
     grep: can't open 16" ,這是為什麼?
請大伙提提意見,這個怎麼解決呢。

請高手指導這個grep的問題

grep -v `date|awk '{printf("\"%s%3s\"\n",$2,$3)}'`
將在文件16中匹配字串Mar

請高手指導這個grep的問題

i=`date|awk '{printf("\"%s%3s\"\n",$2,$3)}'`; ls -la | grep -v "$i"

請高手指導這個grep的問題

ls -la|grep -v  "$(date|awk '{printf("%s%3s\n",$2,$3)}')"
--------------------------------------------------------------------------
使用以上這個!
你的
ls -la | grep -v `date|awk '{printf("\"%s%3s\"\n",$2,$3)}'`
實質是執行ls -la | grep -v  March 16

請高手指導這個grep的問題

人家是csh

set i=`date|awk '{printf("\"%s%3s\"\n",$2,$3)}'`
ls -la | grep -v "$i"

請高手指導這個grep的問題

改一下waker 和leolein   就行了
set i=`date|awk '{printf("%s%3s\n",$2,$3)}'`;
ls -la | grep -v "$i"

現在還沒明白能grep -v  "mar  16",
而i="mar  16",grep -v $i不行
但是i=mar  16,grep -v "$i就行了
grep 對特殊字符的處理,真讓人迷惑

請高手指導這個grep的問題

grep -v $i   ==> grep -v mar 16  兩個參數
grep -v "$i"  ==> grep -v "mar 16" 一個參數

看看置頂的13問

請高手指導這個grep的問題

waker?  你可能沒看清我的回復!
-------------------------------------------------------
現在還沒明白能grep -v  "mar  16",
而i="mar  16",grep -v $i不行
但是i=mar  16,grep -v "$i"就行了
grep 對特殊字符的處理,真讓人迷惑
--------------------------------------------------------

i="mar  16",grep -v $i  替換後應該是grep -v "mar  16"
為什麼不行呢?我的疑惑在這。

請高手指導這個grep的問題

i="mar  16",grep -v $i  替換後應該是grep -v "mar  16"

這個不對拉。
你echo $i
會顯示出
"mar 16"
嗎??不會的,只有
mar 16 ==沒有引號。
i本身不含引號,要求包含,可以
i='"mar 16"'
這樣才會使i的內容包含引號。

請高手指導這個grep的問題

請去研究十三問中關於shell解釋命令行的內容



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