2012-02-24 52 views

回答

4
$> cat text 
AAA 3/4 2/2 3/5 
BBB 3/4 2/3 3/3 6/7 
CCC 4/4 7/9 

想法是匹配任何分數,並從每一個只得到分子。所以,分數是(數字)/(數字)。使用組很容易得到你想要的。

$> sed -r -e 's/([0-9]*)\/([0-9]*)/\1/g' ./text 
AAA 3 2 3 
BBB 3 2 3 6 
CCC 4 7 
+0

爲什麼不'sed的 'S/[0-9] \ {1,\} !!摹!' text'? – Johnsyweb 2012-02-24 20:24:23

+0

只是爲了便於閱讀。我不確定OP是否真的熟悉'sed'。 – 2012-02-24 20:26:18

+0

感謝您的幫助。這個確實是可讀的。 – user1224398 2012-02-24 22:01:31

-2

嘗試使用awksedlex程序。

編輯:根據註釋刪除UUOC。

+2

這將是一個UUOC! – Johnsyweb 2012-02-24 20:20:59

+1

哈!從未見過這個縮寫詞。公平點雖然... – smessing 2012-02-24 20:24:37

+1

**停止管道貓!** – 2012-02-24 20:29:58

0

這可能會爲你工作:

sed 's/\/[0-9]*//g' file 
AAA 3 2 3 
BBB 3 2 3 6 
CCC 4 7 
+0

感謝您的答覆。這確實有用,但我不太瞭解代碼。你能解釋一下嗎? – user1224398 2012-02-27 18:43:42

+0

這會查找正斜槓'\ /'(需要用反斜槓引用)後跟零個或多個數字的倍數('g'標誌)。 ''[0-9] *'並且用什麼都不用''替換它們''' – potong 2012-02-27 20:35:16

+0

哦,去吧..非常棒的觸摸......再次感謝。 – user1224398 2012-02-27 20:41:33

相關問題