3

私の要件は、ファイルを読み取り、ファイル内のすべての行に対して一度に 1 行ずつ読み取り行で grep コマンドを実行することです。

パターンに一致する必要なファイルのフィルタリング

find . -name *.ini -exec grep -w HTC {} \; -print | grep ini > input.files

猫のinput.files

./PLATFORM/android/build/integration/android/suites/android_Prefs_Devices_Comms_Suite/ini/android_0019.ini
./PLATFORM/android/build/integration/android/suites/android_Prefs_Devices_Comms_Suite/ini/android_0150.ini
./PLATFORM/android/build/integration/android/suites/android_Prefs_Devices_Comms_Suite/ini/android_0616_1.ini
./PLATFORM/android/build/integration/android/suites/android_SI_Query_Suite/ini/android_0547_4.ini
./PLATFORM/android/build/integration/android/suites/android_SI_Query_Suite/ini/android_0578.ini
./PLATFORM/android/build/integration/android/suites/android_PDL_Suite/ini/android_5203_1.ini
./PLATFORM/android/build/integration/android/suites/android_System_Maintenance_Suite/ini/android_0579_2.ini

input.files から一度に 1 行ずつ読み取り、その上で grep コマンドを実行する方法はありますか?

cat input.files -exec grep -w HTC_One {} \;
4

2 に答える 2

5

次のように言っても、結果に違いはありません。

grep pattern file1
grep pattern file2

また

grep pattern file1 file2

簡単に、次を使用しますxargs

cat input.files | xargs grep -w HTC_One
于 2013-09-19T17:35:31.600 に答える
0

代わりに xargs を使用します。

cat input.files | xargs grep -w HTC_One {} \;

xargs のマニュアルページから:

xargs は、空白 (二重引用符、単一引用符、またはバックスラッシュで保護できます) または改行で区切られた標準入力から項目を読み取り、コマンド (デフォルトは /bin/echo) を 1 回以上実行します。標準入力から読み込まれた項目によって。

于 2013-09-19T17:34:16.930 に答える