已經嘗試了一些「解壓到某個角色」的問題,但都沒有成功。 在grep的使用這個-o從perforce輸出中提取倉庫路徑
例如輸入: //blah/blah/foo.txt#7 - 編輯變化12526(text)通過等等@等等
我想: //胡說/blah/foo.txt
現在我用正則表達式 '/ [^#] * /' 但我得到 //等等/等等/
已經嘗試了一些「解壓到某個角色」的問題,但都沒有成功。 在grep的使用這個-o從perforce輸出中提取倉庫路徑
例如輸入: //blah/blah/foo.txt#7 - 編輯變化12526(text)通過等等@等等
我想: //胡說/blah/foo.txt
現在我用正則表達式 '/ [^#] * /' 但我得到 //等等/等等/
grep
不使用斜槓來分隔模式,所以斜線正好相符。
嘗試:
echo '//blah/blah/foo.txt#7 - edit change 12526 (text)' | grep -o '/[^#]*'
注意,如果「文本」中有一個斜槓,這部分也將匹配,並因此將grep -o
打印。所以,我會去像這樣的東西:
echo '//blah/blah/foo.txt#7 - edit change 12526 (text)' | sed 's/#.*//'
(這兩個假設沒有#在你的文件名,當然)
這樣做,謝謝。 #後面的文字不應該有斜線:) – Th3sandm4n 2011-06-08 03:18:34
這有助於使用「標記」模式時,你正在做這樣的腳本,因爲標記的輸出更容易解析和處理。請參見http://www.perforce.com/perforce/r10.2/manuals/cmdref/o.gopts.html#1040647中的「-ztag」,也可以看看http://www.perforce.com/perforce/r10.2/manuals/p4script/index.html
使用cut
。
<whatever it takes to get your output> | cut -f1 -d"#"
所以,如果你是一個grepping文件或類似的東西的內容。
grep -o "whatever text" inputFile | cut -f1 -d"#"
的-d"#"
裝置使用 「#」 作爲分隔符,-f1
意味着第一個字段。
什麼工具? Perl的?紅寶石?蟒蛇? grep的?你真的需要提供更多的信息 – Nemo 2011-06-08 02:56:01
對不起,這只是使用grep – Th3sandm4n 2011-06-08 03:09:19