私のスクリプト
#!/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" "{}" \;