我有bash脚本和一个csv文件,其中包含多个行,包含名称,地址,数字和另一个包含csv文件中几个名称的文件的文件夹。如何只删除包含文件夹中存在的文件名的行?
答案 0 :(得分:0)
首先制作一个脚本,从第二个文件夹中检索名称
您可以使用结果过滤第一个文件
当名称具有特殊字符(在sed
中使用)或csv文件具有类似
field1,"an other field with a , inside quotes",field3
awk
是一个不错的工具。如果您没有引用字段,,
作为fieldsep并且字段1中的名称,您可能会使用类似
awk 'NR==FNR{a[$1];next} !($1 in a) {print}' <(cat secondfolder/allcsvfiles.csv) maincsv_file
# or without the default {print}
awk -F"," 'NR==FNR{a[$1];next} !($1 in a)' <(cat secondfolder/allcsvfiles.csv) maincsv_file
(请参阅What is "NR==FNR" in awk?获取解释)