我有 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