私はn個のテキストファイルを持つディレクトリを持っています。さて、私はこれらのファイルのいずれかが定数ファイルの1つ(またはそれ以上)の単語を含んでいるかどうか確認したいと思います。 これらのファイルは、すべて単語の量が異なるすべての辞書です。定数ファイルはパスワードリストです。ここではこれらの単語をチェックします。正しいヒットの量は変数に保存する必要があります。また、単語は変数に保存する必要があります(私は配列として考える)。例えばディレクトリ内のファイルに定数ファイルの単語が含まれていないか確認してください。
:file1
は私のパスワードリストはthis is a test for the dictionary and we have no other one
が含まれている、file2
はAnd another one
含まれ、This is my dictionary
が含まれています。 file1
のヒット数は、This is dictionary
(n1=3
ワード)であり、file2
and one
(n2=2
ワード)です。
私の現在のコードでは、彼女は私がdictionarysの異なる量を持っていること、である私の最大の問題の
#!/bin/bash
# program_call passwordlist.txt *.txt
passwordlist="$1"
dictionarys="$*"
for comparison in $dictionarys; do
cat $passwordlist $comparison| sort | uniq -d >${comparison}.compare
done
一つです。おそらく2、おそらく200です。これらのすべてはパスワードリストと照合されなければなりません。正しい単語と正しい単語自体がOWN変数に保存されなければなりません。だから私は各辞書の2つの変数を考える。
あなたが持っているコードの何が問題なのですか?あなたは本当にファイルではなくシェル変数に結果を保存する必要がありますか?一致の数が必要な場合は、 'wc -l $ comparison.compare'を使用してください。 – Barmar
' fgrep -x -f $ passwordlist $ comparison'を使って、ファイル間で一致する行を取得することもできます。 – Barmar
私の問題は、私の出力は常にそれらの結果のすべてが1つのファイルだということです。結果が出てきたファイルだけを取得しても大丈夫です。私は、通常、すべての単一の$辞書が比較で保存されていると思ったので、私の出力は、例えばfile1.compare、file2.compare、file3.compareなどです。しかし、私の出力はすべての結果でのみ.comapareです。理解できません。また、私はテキストファイルだけに興味があります。だから、私は '$ 1dictionary * .txtで比較しようとしました。私は同じ問題を抱えています。ただ1つの出力ですが、この場合、その呼び出しは* .txt.compareです。 – ipo