2016-04-28 2 views
3

標準的なUnixツールの使用テキストファイルを検索したり、1〜2文字の転置や欠落のある単語を出力するにはどうすればよいですか?例えば小さなミスのgrepテキストへの方法

私の入力

function addtion(number, increment) 
    return number+increment 
end 

function additoin(number, increment) 
    return number+increment 
end 

私は私の入力にadditionと一致addtionadditoinを検索し、それを教えしたいと思います。それはコードなので、辞書をチェックすることは問題になりません。

現在cat file.txt | grep "addition"は単純に私に何ももたらさないでしょう。

+1

、「広告」または「A」で始まるで終わるあなたが単語を検索することができます唯一の事 " n '、およびそれらの間の可能な文字セットを含む。そのために 'grep -En" [dito] + n "file - color"のようなことをすることができます。 – blackSmith

答えて

9

agrepコマンドで遊ぶことができます。あいまいで近似したマッチを実行できます。

次のコマンドを実行すると、私の仕事:

agrep -2 addition file 
1

あなたは、標準のgrepでファジーマッチを行うことはできませんが、興味のある特定のスペルミスがある場合は、あなたが一致する正規表現を構築することができそれら。例えば

grep add[it]*on 

は、あなたが与えた例のスペルミスと一致します。しかし、それはおそらくあなたの目的のために一般的ではありません。

より良いアプローチは、コードがある言語に固有の何らかの静的解析ツールを使用することになりがちです。正しいスペルは与えられないかもしれませんが、関数名と関数の呼び出しには異なるスペリングが使用されます。

0

spellコマンドを試してください。注意:辞書が必要な場合があります(ディストリビューションのリポジトリには通常aspell-en)。

0

Linuxターミナルでこれを試してみてください:grepをして

はgrep -rnw「テキスト」./

関連する問題