我的要求是读取一个文件,然后在读取行上一次运行一个grep命令,用于文件中的所有行。
过滤与模式匹配的所需文件
find . -name *.ini -exec grep -w HTC {} \; -print | grep ini > input.files
cat 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 {} \;
答案 0 :(得分:5)
如果您说:
,结果将没有任何差异grep pattern file1
grep pattern file2
或
grep pattern file1 file2
只需使用xargs
:
cat input.files | xargs grep -w HTC_One
答案 1 :(得分:0)
请改用xargs:
cat input.files | xargs grep -w HTC_One {} \;
来自xargs手册页:
xargs读取项目 来自标准输入,由空格分隔(可以保护 使用双引号或单引号或反斜杠)或换行符,并执行 任何初始命令(默认为/ bin / echo)一次或多次 参数后跟从标准输入读取的项目。