Awk If, If Else, Else 语句从多个文件中获取数据

Awk If, If Else, Else 语句从多个文件中获取数据

我有 10000 个文本文件。有些文件包含首次价格第二价格和其他仅包含的文件首次价格. 我想要得到第二价格仅当可用时,如果不可用则获取首次价格以 FILENAME 作为前缀,如下所示:

文件名:数据

10000.txt

window.firstprice="20.0";
window.secondprice="10.0";

20000.txt

window.firstprice="5.0";

30000.txt

window.firstprice="40.0";
window.secondprice="30.0";

我想使用以下方法获取所有 10k 个文件的数据awk或者perl或者grep或其他工具。

我尝试过这个但是只有当我从一个文件中提取数据时它才有效,但是当我使用 *.txt 从目录中的所有文本文件中获取数据时它不起作用:

awk -F'"' -v val="begin" ' BEGIN{ OFS="," } FNR==1{ if(val!="begin") { print val?val:"NO" } val="" } /.secondprice=/{ minval=(minval?minval OFS:"")$(NF-1) } /.firstprice=/{ val=(val?val OFS:"")$(NF-1) } END{ split(FILENAME,a,/.txt/); if (minval=="") {print a[1]":"val } else { print a[1]":"minval}} ' *.txt

期望输出:

10000:10.0
20000:5.0
30000:30.0

相关内容