2017-07-17 34 views
-2

我需要从下面的文件中grep一个表达式:请帮助我希望在磁盘@直到逗号之后grep这个单词。python 2.7需要从一个文件中grep一个特定的字

cat out1 boot-device=/[email protected]/[email protected]/[email protected]/[email protected]/[email protected]/[email protected],0:a rootmirror rootdisk boot-device-index=0 
+0

grep的是一个shell工具。这是一个Python问题? – khelwood

+0

我的意思是想让文字磁盘@直到逗号。请检查以下内容:disk @ w5000cca025884d5d – aleem

+0

我认为“grep”的意思是“使用正则表达式”? Python有一个库。见下面: –

回答

0

是这样的?它会打印出 “盘@ w5000cca025884d5d”

import re 
file_object = open("input", "r") 
for line in file_object:  
    m = re.search('.*[email protected](.*),.*', line) 
    if m: 
     print(m.group(1)) 
+0

非常感谢我能够打印工作,但我不想要逗号。请检查:disk @ w5000cca025884d5d, – aleem

+0

当然,只要将它移到()之外就像我上面所做的那样。 –

+0

非常感谢它的工作。但是我的错误是我的要求是在磁盘@之后搜索表达式,并且在逗号之前少一个字符。我真的很抱歉。 – aleem

0

可能需要逃避逗号作为特殊字符:

import re 

s = 'cat out1 boot-device=/[email protected]/[email protected]/[email protected]/[email protected]/[email protected]/[email protected],0:a rootmirror rootdisk boot-device-index=0' 
match = re.search(r'[email protected](.*)\,', s) 

if match: 
    print match.group(1) 

输出:

w5000cca025884d5d 
+0

非常感谢它的工作。 – aleem

+0

从输出我想删除第一个和最后一个字母。这是我的要求。谢谢很多帮助。 – aleem

+0

好的,但没有其他答案解决你的问题? – davedwards

相关问题