我有一個文件,我希望grep所有行不以時間戳開始。我試着用下面的正則表達式,但它沒有工作:非運算符在正則表達式
cat myFile | grep '^(?!\[0-9\]$).*$'
其他任何建議或東西,我可能是錯在這裏做什麼?
我有一個文件,我希望grep所有行不以時間戳開始。我試着用下面的正則表達式,但它沒有工作:非運算符在正則表達式
cat myFile | grep '^(?!\[0-9\]$).*$'
其他任何建議或東西,我可能是錯在這裏做什麼?
爲什麼不直接使用grep -v選項這樣的否定:
grep -v "<pattern>" file
比方說,你想用grep在那些沒有評論 shell腳本的所有行(沒有#在啓動)那麼你可以使用:
grep -v "^\s*#" file.sh
這裏唯一的*正確*答案:不要試圖否定模式,否定匹配結果。 +1 – 2012-02-06 19:25:54
你不需要not
操作,只是使用grep,因爲它是最容易使用:發現一個規律:
grep '^[0-9]' myFile
試試這個:
cat myFile | grep '^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d'
這裏假設你的時間戳是模式dddd-dd-dd dd:dd:dd
,但如果它是其他內容,則將其更改爲與時間戳匹配的內容。
注意:除非你使用某種CMD鏈的,grep pattern file
是一個簡單的語法
BTW:你使用雙負的讓我不確定,如果你想的時間戳線或你想要的非時間戳行。
*沒有工作* ...煙從電腦裏出來了嗎? – 2012-02-06 19:12:20
它屬於http://unix.stackexchange.com/,但在off主題選項之間找不到它。投票支持http://superuser.com/ – BlackBear 2012-02-06 19:19:31