5) printf("Filename: %-6ren">
gpt4 book ai didi

linux - 如何使用 Awk 显示列中的文件名?

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:52 28 4
gpt4 key购买 nike

我正在尝试执行一个添加到我的文件中的命令:当前输入文件的名称+逗号数小于5的行的索引+整行的逗号数。

我得到了:

awk -F"," '{ if(NF > 5) printf("Filename: %d  Index: %d Number of commas : %d\n",FILENAME,NR, NF-1); }' dsc* >> filename.csv

输出是:

Filename: 0  Index: 68520 Number of commas : 6

索引和逗号似乎工作正常,但文件名呢?我做错了什么?

应该是:

 Filename: dscabc.txt   Index: 68520 Number of commas : 6
Filename: dscabc1.txt Index: 123 Number of commas : 6

最佳答案

FILENAME 是字符串,不是数字。使用 %s:

awk -F"," '{ if(NF > 5) printf("Filename: %s  Index: %d Number of commas : %d\n",FILENAME,NR, NF-1); }' dsc* >> filename.csv

摘自 man awk 中讨论 printf 的部分:

  %d, %i  A decimal number (the integer part).

%s A character string.

关于linux - 如何使用 Awk 显示列中的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57041283/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com