Bashスクリプトをどのように拡張できますか?

Bashスクリプトをどのように拡張できますか?

私のスクリプト

#!/bin/bash

for file in *.xml; do
find . -name "*.xml" -exec grep "sample_freq" "{}" \;
find . -name "*.xml" -exec grep "sensor_sernum" "{}" \;
done

フォルダ用にぴったりですね

      <sample_freq>131072</sample_freq>
        <sample_freq>131072</sample_freq>
        <sample_freq>131072</sample_freq>
        <sample_freq>131072</sample_freq>
        <sample_freq>131072</sample_freq>
        <sensor_sernum>0</sensor_sernum>
        <sensor_sernum>0</sensor_sernum>
        <sensor_sernum>255</sensor_sernum>
        <sensor_sernum>237</sensor_sernum>

しかし、問題は、私のディレクトリに7つのフォルダがあり、各フォルダにxmlファイルがあることです。 7つのフォルダすべてに入り、各フォルダから情報を取得するようにスクリプトを拡張できますか?
マイディレクトリの内容

58  meas_2015-06-29_19-47-58  mys.sh   n.sh
meas_2015-06-29_19-03-00  meas_2015-06-29_19-22-58  meas_2015-06-29_19-30-58  meas_2015-06-29_20-39-58

チョロバが私に提案したことを試しました

#!/bin/bash

for file in ./*; do                                                                                      
    grep 'sample_freq'   "$file"
    grep 'sensor_sernum' "$file"
done

しかし、

grep: ./EDI´s: Is a directory
grep: ./EDI´s: Is a directory
grep: ./meas_2015-06-29_19-03-00: Is a directory
grep: ./meas_2015-06-29_19-03-00: Is a directory
grep: ./meas_2015-06-29_19-18-28: Is a directory
grep: ./meas_2015-06-29_19-18-28: Is a directory
grep: ./meas_2015-06-29_19-22-58: Is a directory
grep: ./meas_2015-06-29_19-22-58: Is a directory
grep: ./meas_2015-06-29_19-26-58: Is a directory
grep: ./meas_2015-06-29_19-26-58: Is a directory
grep: ./meas_2015-06-29_19-30-58: Is a directory
grep: ./meas_2015-06-29_19-30-58: Is a directory
grep: ./meas_2015-06-29_19-47-58: Is a directory
grep: ./meas_2015-06-29_19-47-58: Is a directory
grep: ./meas_2015-06-29_20-39-58: Is a directory
grep: ./meas_2015-06-29_20-39-58: Is a directory
find . -name "*.xml" -exec grep "sample_freq" "{}" \;
    grep 'sample_freq'   "$file"
    grep 'sensor_sernum' "$file"
    grep 'sample_freq'   "$file"
    grep 'sensor_sernum' "$file"

ベストアンサー1

forまったくループする必要はありません。

find . -name "*.xml" -exec grep "sample_freq" "{}" \; -exec grep "sensor_sernum" "{}" \;

おすすめ記事