
大規模なデータベースダンプで検索および置換操作を実行したいが、発生する必要があると思う操作は実行されません。私のターゲット文字列のファイルをgrepしてから、約8文字を見たいのです(したがって、その数を調整する必要があるかもしれません)。どうすればいいですか?
私がこれに集中できないのは、何千ものゲームでなくても何百ものゲームがあるからです。文字列の周りにいくつかの文字を取り、uniq
他の場所にパイプして検索と置換が予期せず動作する理由を理解したいと思います。
さらに、同じ行に複数の一致がある可能性があります!
答え1
おおよその使用方法grep
はこれです
grep -o "....yourtext...." /path/to/the/dump.sql
ポイントは、grepテキストの前後の文字数に対応します。この-o
オプションを使用すると、行grep
全体ではなく一致する項目のみが出力されます。
uniq
出力に使用するには、まず出力をソートする必要があることに注意してください。だから一般的には
grep . . . | sort | uniq
ゲームあたりのヒット数に興味がある場合は、次のようにして良い結果を得ることができます。
grep . . . | sort | uniq -c | sort -n
答え2
@rozcietrzewiaczの答えから始めて、次のように拡張できます。
pattern="string"
num=8
grep -on ".\{0,$num\}$pattern.\{0,$num\}" input-file