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