我有两个文件,第一个文件有~16000个文件,第二个文件是查找文件,有~4000行。
file1的示例内容如下:
id,title,name,value,details
01,23456, , ,abcdefg
02,23456, , ,abcdefg
03,12345, , ,abcdefg
04,34534, , ,abcdefg
...
查找文件file2的示例内容如下:
sno,title,name,value
1,23456,abc,xyz
2,12345,cde,efg
3,34534,543,234
现在我的要求是比较查找文件中file1的第2列,并将查询文件中column3和column4的值插入到新的输出文件中。
输出文件应如下所示:
id,title,name,value,details
01,23456,abc,xyz,abcdefg
02,23456,abc,xyz,abcdefg
03,12345,cde,efg,abcdefg
04,34534,543,234,abcdefg
我通过查看现有问题尝试了几次迭代,但没有得到我想要的结果。使用awk的任何解决方案都会非常有用。
答案 0 :(得分:4)
function myFunction() {
var table = document.getElementById("myTable");
var row = table.insertRow(0);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = '<input type="text" name="naamoptie2[0]" class="simple_field" placeholder="Naam van optie/onderdeel" required style="padding: 10px 10px;" />';
cell2.innerHTML = '€ <input type="number" name="prijsticket[0]" class="simple_field" placeholder="100" required style="padding-top: 5px; padding-bottom: 5px; min-height: 30px;" step="any" />';
cell3.innerHTML = '<input type="number" name="aantaltickets2[0]" class="simple_field" required style="padding-top: 5px; padding-bottom: 5px; min-height: 30px;" placeholder="aantaltickets" />';
cell4.innerHTML = '<input type="text" name="onderdeelnummer[0]" class="simple_field" required style="padding: 10px 10px; margin-top: 10px;" placeholder="Onderdeelnummer" />';
cell5.innerHTML = '<input type="text" name="categorienummer[0]" class="simple_field" required style="padding: 10px 10px; margin-top: 10px;" placeholder="Categorienummer" />';
}
答案 1 :(得分:3)
这是一个awk oneliner:
awk -F, 'FNR==NR {n[$2]=$3;v[$2]=$4} FNR!=NR{OFS=","; print $1,$2,n[$2],v[$2],$5}' file2 file1
我们的想法是两次处理,首先是file2存储所有的名称和值,然后是file1,打印出每一行,包括收集的名称和值。
答案 2 :(得分:1)
awk -F"," 'BEGIN{OFS=","} NR==FNR {a[$2]=$3","$4;next} {print $1,$2,a[$2],$5;}' file2 file1