3

我的要求是读取一个文件,然后对文件中的所有行一次在读取行上运行一个 grep 命令。

过滤与模式匹配的所需文件

find . -name *.ini -exec grep -w HTC {} \; -print | grep ini > 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 一次读取一行并对其执行 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)一次或多次,后跟任何初始参数通过从标准输入读取的项目。

于 2013-09-19T17:34:16.930 回答