我試圖使用Python多一點,我知道這不是最好的用例,但它困擾着我爲什麼我不能得到它的工作。Python搜索字符串一個線程
我目前正在使用Python 2.7.6,我想捕捉一個文件,然後根據正則表達式從中抽出特定的字符串。下面的代碼適用於我想要的,但僅查看第一行。
cat /tmp/blah.txt | python -c "import re,sys; m = re.search('Host: (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*OS:(.*) Seq:', sys.stdin.read()); print m.group(1), m.group(2)"
所以,我認爲我可以只使用一個for循環或到的FileInput讀取整個文件,然後把我的代碼的其餘部分在那裏,但我不斷收到錯誤在for循環。
cat /tmp/blah.txt | python -c "import sys; for line in sys.stdin: print line" File "<string>", line 1
import sys; for line in sys.stdin: print line
^
SyntaxError: invalid syntax
我已經嘗試了一些這種變化,但不能得到它的工作。它總是說for部分的語法無效。我知道它必須是非常愚蠢/顯而易見的事情,但任何幫助將不勝感激。
如果我創建了一個名爲arg.py的程序,並將它放在下面的代碼中並通過cat調用Python,它可以正常工作。這只是一個不符合要求的部分。
import sys
for line in sys.stdin:
print line
你爲什麼混合Python和命令行這樣呢?只需使用'grep',或從Python打開文件。 – jonrsharpe
正如我在第一句話中所說的,我知道這不是最好的用例,我只是想看看我能否實現它。我通過命令行搜索日誌來做很多事情,並且想知道我是否也可以使它適用於Python。 – Eric