たとえば、文字列「J34567」を含むフォルダー内のすべてのファイルを検索して処理するスクリプトを作成しようとしています。現在、コードを使用してフォルダー内のすべてのファイルを処理できますが、スクリプトは含まれている文字列を処理するだけでなく、フォルダー内のすべてのファイルを処理します。つまり、文字列名を使用してスクリプトを実行すると、その文字列名 ./bashexample 'J37264'
がなくてもすべてのファイルが処理されます。以下は私のコードです:
#!/bin/bash
directory=$(cd `dirname .` && pwd)
tag=$1
echo find: $tag on $directory
find $directory . -type f -exec grep -sl "$tag" {} \;
for files in $directory/*$tag*
do
for i in *.std
do
/projects/OPSLIB/BCMTOOLS/sumfmt_linux < $i > $i.sum
done
for j in *.txt
do
egrep "device|Device|\(F\)" $i > $i.fail
done
echo $files
done