bash - 如何使用 awk 解析 Makefile
问题描述
我是 awk 脚本的新手。我需要帮助找出解析makefile的方法。
下面是我的示例制作文件。我使用“make tests”来运行我的测试。“LESTS=”下列出的所有测试文件。在这里,我只列出了 3 个文件(connect、proxy-connect、connect-privsep),但实际上我有 70 个文件。如何获取“LTESTS =”中列出的所有文件。
我搜索但无法找到提取方法。谢谢你的帮助。
REGRESS_TARGETS= t-exec
tests: prep $(REGRESS_TARGETS)
prep:
test "x${USE_VALGRIND}" = "x" || mkdir -p $(OBJ)/valgrind-out
LTESTS= connect \
proxy-connect \
connect-privsep
t-exec: ${LTESTS:=.sh}
@if [ "x$?" = "x" ]; then exit 0; fi; \
for TEST in ""$?; do \
echo "run test $${TEST}" ... 1>&2; \
(env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \
done
解决方案
$ awk 'sub(/.*LTESTS=/,""){f=1} !NF{f=0} f{print $1}' file
connect
proxy-connect
connect-privsep
或者如果 LESTS 块后没有空行:
awk 'sub(/.*LTESTS=/,""){f=1} f{print $1; if (!/\\/) exit}' file
推荐阅读
- python-3.x - 我如何从给定 tr 标签的标签中获取数据
- oracle11g - 根据复选框中选择的内容分配 P1_tem 的值
- python - 为什么我的打印被跳过而我得到一个回溯错误?
- xpages - 如何使用 ssjs 从 Xpages 中清除 sessionScope?
- ios - 从 xib 导航到 tableView 时应用程序崩溃
- c# - 如何加载带有价格标签和底部名称的网格图像
- c++ - 将函数指针从一种类型转换为另一种类型的最佳方法是什么?
- java - 开放差异活动的差异推送通知
- css - @Import scss,相对路径,angular-cli
- parsing - 是否有关于使用边做边学或增量方法编写手写解析器的书籍/文章?