Shell 从csv转储中删除特定行
我有bash脚本和一个csv文件,其中多行包含名称、地址、数字,另一个文件夹包含csv文件中的几个名称的文件。如何仅删除包含文件夹中存在的文件名的行?首先制作一个脚本,从第二个文件夹中检索文件名。Shell 从csv转储中删除特定行,shell,text-parsing,Shell,Text Parsing,我有bash脚本和一个csv文件,其中多行包含名称、地址、数字,另一个文件夹包含csv文件中的几个名称的文件。如何仅删除包含文件夹中存在的文件名的行?首先制作一个脚本,从第二个文件夹中检索文件名。 您可以使用结果筛选第一个文件。 当名称具有特殊字符(如在sed中使用的)时,或者当csv文件具有类似 field1,"an other field with a , inside quotes",field3 awk是一个很好的工具。如果没有带引号的字段,,作为字段sep和字段1中的名称,可以使用
您可以使用结果筛选第一个文件。
当名称具有特殊字符(如在
sed
中使用的)时,或者当csv文件具有类似
field1,"an other field with a , inside quotes",field3
awk
是一个很好的工具。如果没有带引号的字段,,
作为字段sep和字段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
awk'NR==FNR{a[$1];next}!(一元一张){print}'