Text-Processing
grep 匹配的字元周圍
我希望在一個巨大的數據庫轉儲中進行查找和替換,但它沒有做我認為應該發生的事情。我想在文件中查找我的目標字元串,然後查看周圍的 8 個字元左右(我可能需要調整該數字,具體取決於)。我怎樣才能做到這一點?
我無法注意到這一點的原因是因為有數百甚至數千場比賽。我想在字元串周圍獲取一些字元,然後通過管道將其輸入
uniq
或查看為什麼我的查找和替換出現意外行為。此外,同一行可以有多個匹配項!
粗略的使用方式
grep
類似於grep -o "....yourtext...." /path/to/the/dump.sql
點數對應於 grepped 文本之前/之後的字元數。該
-o
選項grep
只輸出匹配項,而不是整行。要
uniq
在輸出上使用,請記住您必須先對輸出進行排序。所以通常,你會做grep . . . | sort | uniq
如果您對每場比賽的命中數感興趣,您可以使用
grep . . . | sort | uniq -c | sort -n
從@rozcietrzewiacz 的答案開始,我可以擴展到
pattern="string" num=8 grep -on ".\{0,$num\}$pattern.\{0,$num\}" input-file