2017-04-25 96 views
1

我需要在文件中的特定位置grep文件的2個連續字符。我可以grep使用(在這個例子中,我grepping爲數字1)單個字符:如何grep在特定文件位置的兩個字符

grep -E '^.{50}[1]' file.txt 

該搜索的第一個字符,但我不知道如何檢查第2個字符。 2個字符是一個時間戳,我需要搜索小時18至23和00至06. 任何幫助,一如既往,讚賞:)

+2

如果您發佈了輸入字符串和預期輸出,那將會很不錯 – RomanPerekhrest

回答

3

如果你正在尋找一個小時是在集(18,19,20,21,22,23),你想使用「|」運算符在一組括號內:

grep -E '^.{50}(18|19|20|21|22|23)' file.txt 

這將匹配'|'中的任何模式,從該行的第51個字符開始的分隔列表。

要檢查在第51和第52偏移兩個重複的數字,嘗試:

grep -E '^.{50}([0-9])\1' file.txt

後面引用(\ 1)這裏說「匹配由第一組括號encosed模式」。在這種情況下,如果在文件的不同行中有11,12,13,21,22和23,則只有包含11和22的行會匹配。 [0-9]將其限制爲數字,並且\ 1表示與第一個數字匹配。

+0

非常棒,非常感謝:) – machinist

相關問題