0

以前にファイルに保存されたいくつかの特定の文字列から多くのファイルのディレクトリにgrepする次の作業スクリプトがあります。

ファイル拡張子を使用してすべてのファイルを grep します。その名前はランダムであり、以前のファイルのすべての文字列をすべてのファイルで検索する必要があることに注意してください。

また、一致したファイルの 2 行または 3 行を返し、ファイル名を示す特定の部分のみが必要なため、出力する grep をカットします。

冗長なものを使用している可能性がありますが、どのように高速化できますか?

#!/bin/bash
#working but slow
cd /var/FILES_DIRECTORY
while read line
do
LC_ALL=C fgrep "$line" *.cps | cut -c1-27 >> /var/tmp/test_OUT.txt
done < "/var/tmp/test_STRINGS.txt"
4

2 に答える 2

3
grep -F -f /var/tmp/test_STRINGS.txt *.cps | cut -c1-27

あなたが探しているものではありませんか?

于 2013-09-26T18:09:31.277 に答える
0

これにより、スクリプトが高速化されます。

#!/bin/bash
#working  fast 

cd /var/FILES_DIRECTORY
export LC_ALL=C

 grep -f /var/tmp/test_STRINGS.txt *.cps | cut -c1-27 > /var/tmp/test_OUT.txt
于 2013-09-26T18:18:17.460 に答える