lik*_*ern 1 bash shell grep find
bash guru;)我正在尝试改进bash中的一些字符串,它在特定文件中grep特定关键字的匹配.它看起来像这样:
find /<path>/hp -iname '*.ppd' -print0 | xargs -0 grep "\*ModelName\:"
Run Code Online (Sandbox Code Playgroud)
这对我来说非常快!比这个快20倍:
find /<path>/hp -iname '*.ppd' -print0 | xargs -0 -I {} bash -c 'grep "\*ModelName\:" {}'
Run Code Online (Sandbox Code Playgroud)
但问题是在第一个脚本中我得到以下几行:
/<path>/hp/hp-laserjet_m9040_mfp-ps.ppd:*ModelName: "HP LaserJet M9040 M9050 MFP"
Run Code Online (Sandbox Code Playgroud)
但是期望的结果就是
*ModelName: "HP LaserJet M9040 M9050 MFP"
Run Code Online (Sandbox Code Playgroud)
(如第二个脚本中所示).我怎样才能实现它?
PS:我正在使用find脚本的灵活性和未来的改进.