使用 Awk 查找以 .c 结尾的文件

Using Awk to Find Files ending in .c

我正在编写一个 awk 脚本,里面看起来像这样:

BEGIN{print "Name\t  Size\t\t  Access"}
{if(~/[1-9].[c]) printf "%-10s %-10s %-5s\n", , , }

这会尝试查找以 .c 结尾的文件,但它会给我名称中包含 .c 的文件。我的输出如下所示:

lab1.cpp 
Lab2.cpp 
prog1.c  
prog2.c 
prog3.c.txt 

我必须使用 awk 命令来查找这些文件。我该如何解决这个问题才能得到这个:

prog1.c  
prog2.c 

在您的正则表达式中使用结束锚点并通过删除 if 和条件块来缩短您的 awk:

BEGIN{print "Name\t  Size\t\t  Access"}
 ~ /[1-9]\.c$/ { printf "%-10s %-10s %-5s\n", , , }