2017-07-01 21 views
-2

我有一個包含一些信息,我需要提取一個文本文件,例如文件如下提取從一個文件中的某些字符:使用SED

"version":  (2, 0, 0), 
    "location": "Node Editor", 
    "category": "Node", 

我想在表單中的版本信息2.0.0。我嘗試了通過抽樣行,然後對版本號進行採樣然後合併它們,但它很混亂。做這個的最好方式是什麼?

+1

我覺得你的問題是更適合https://unix.stackexchange.com/或http://superuser.com – jAC

+0

@JanesAbouChleih我看到有一個Sed標籤超過17.2k個問題,所以我儘管這是最好的地方問。 –

+0

是的,我想你是對的,認爲這是題外話。抱歉。 – jAC

回答

1
sed -n 's/.*\"version\":[^(]*(\(.*\)).*/\1/p' __init__.py |sed 's/, /\./g' 

輸出:

2.0.0 
+0

在我的文件中使用它時,它會返回一些其他文本。 –

+0

外觀https://ideone.com/fRut0A – tso

+0

http://imgur.com/a/zPELe以__init__.py開頭:http://imgur.com/a/9ACSV –

1

使用sed,你可以做這樣的:

sed -n "s/ *\"version\": *(\(.*\)),/\1/; s/, /\./gp" file 

輸出應該是:

2.0.0 

online demo

+0

這工作,它可以在2.0.0的形式嗎?我應該用「。」替換「,」嗎? –

+0

@OmarAhmad,是的,我已經更新了答案(從tso的答案中借用)。 – ks1322