从我的makefile中,我调用了一个perl脚本,它将返回包含文件路径,文件名,行号和错误消息的消息。我只需要文件路径和文件名。我的脚本将此消息打印到标准输出,以便它自动显示在控制台中。如何从shell中的警告消息中提取子字符串
在我的makefile中,如何获取文件路径和文件名?我愿意使用grep,sed或tee或其中最适合使用的版本。
我的字符串是这样的:
Warning: <filepath>/<filename>: <line number> <some message>
e.g:
Warning temp/output/dir/report.txt: 545 problem with parsing blah blah blah.
所以,我将只需要获得 “临时/输出/ DIR/REPORT.TXT” 的一部分。什么是最好的方法来做到这一点?
你为什么认为“在makefile中”有什么区别? Makefile中的命令由shell执行。您可以像在命令行中那样过滤该输出。更好地重述这个问题以删除整个“Makefile”部分。就我个人而言,我会去'perlscript | sed“s @ Warning \([^:] * \):。* @ \ 1 @”' – DevSolar
@chris yo:您可以提供关于 – Inian