首页 > 解决方案 > Python 像 Linux grep 一样搜索并打印出整行?

问题描述

让我们以此为例。

>>> t = '''Line 1
... Line 2
... Line 3'''
>>> 

re.findall只打印出类似于Linux的特定模式grep -o

>>> re.findall('2', t)
['2']
>>> 

Linux grep

wolf@linux:~$ echo 'Line 2' | grep 2
Line 2
wolf@linux:~$ 

Linux grep -o

wolf@linux:~$ echo 'Line 2' | grep 2 -o
2
wolf@linux:~$ 

我知道可以打印出整个输出,但我现在想不出逻辑。

Python 中的预期输出

Line 2

如果有更好的方法可以做到这一点,请告诉我。

标签: pythonlinuxsearchre

解决方案


print([l for l in t.splitlines() if "2" in l])

或者,如果您希望将其分开grep

print('\n'.join([l for l in t.splitlines() if "2" in l]))

推荐阅读