在一個非常大的文件中,我需要找到字符串的位置(行號),然後提取該字符串上方和下方的2行。在文本文件中查找行號 - 無需打開文件
要做到這一點 - 我啓動vi,找到字符串,記下它的行號,退出vi,然後使用sed來提取字符串周圍的行。
有沒有一種方法來簡化這個過程......理想情況下,不必運行vi。
在一個非常大的文件中,我需要找到字符串的位置(行號),然後提取該字符串上方和下方的2行。在文本文件中查找行號 - 無需打開文件
要做到這一點 - 我啓動vi,找到字符串,記下它的行號,退出vi,然後使用sed來提取字符串周圍的行。
有沒有一種方法來簡化這個過程......理想情況下,不必運行vi。
你可以做
grep -C 2 yourSearch yourFile
要在發送文件,這樣做
grep -C 2 yourSearch yourFile > result.txt
可以以提取行號grep
後使用cat -n
顯示的行號,然後使用awk
獲得的行號:
cat -n FILE | grep WORD | awk '{print $1;}'
雖然grep
已經這樣做了,你提什麼,如果你給-C 2
(高於/低於2行):
grep -C 2 WORD FILE
使用grep -n string file
找到行號,而無需打開該文件。
也許用grep這樣的:
grep -n -2 your_searched_for_string your_large_text_file
會給你你期待什麼幾乎
-n:告訴grep來打印行數
-2:打印2條額外的線路(當然)
您可以使用grep -A
和-B
選擇這樣做,是這樣的:
grep -B 2 -A 2 "searchstring" | sed 3d
的grep會發現行,並顯示兩行上下文前後,後來用sed刪除第三個。
這與'-n'是最簡潔的。 – InternetSeriousBusiness