用于删除CSV中某列为空的行的批处理脚本

用于删除CSV中某列为空的行的批处理脚本,csv,batch-file,Csv,Batch File,假设我有以下条目: *ARTNR;*BESTAND;*HERSTARTNR;*WG;*WG2;*LWG;*LWG2 1000;2758;;PAS;;Passive Bauelemente; 5800;0;;PAS;MIC;Passive Bauelemente;Microchip Technology 5801;0;;AKT;AMP;Aktive Bauelemente;TE connectivity 5802;0;;PAS;;Passive Bauelemente; 5803;0;"PDZ 4

假设我有以下条目:

*ARTNR;*BESTAND;*HERSTARTNR;*WG;*WG2;*LWG;*LWG2
1000;2758;;PAS;;Passive Bauelemente;
5800;0;;PAS;MIC;Passive Bauelemente;Microchip Technology
5801;0;;AKT;AMP;Aktive Bauelemente;TE connectivity
5802;0;;PAS;;Passive Bauelemente;
5803;0;"PDZ 4,3B  7""SOD323";AKT;;Aktive Bauelemente;
5804;0;;MEC;HON;Elektromechanik;Honeywell
5805;0;;MEC;;Elektromechanik;
5806;0;;MEC;;Elektromechanik;
5807;0;;MEC;HON;Elektromechanik;Honeywell
5809;0;;AKT;ORS;Aktive Bauelemente;Osram Opto Semiconductors
5810;0;61240090;MEC;;Elektromechanik;
5811;0;AT89C55WD-24PU;AKT;ATM;Aktive Bauelemente;Atmel
5815;0;;MEC;;Elektromechanik;
5816;0;;MEC;;Elektromechanik;
现在我想删除列上的所有空行,*HERSTARTNR like 第一排。对于批处理脚本,这可能吗


谢谢你

这样行吗

perl -ne 'print unless /^\d+;\d+;;/' file.csv

要保留标题行,请在前两列中测试非分号

在Windows中:

findstr /v "^[^;]*;[^;]*;;" old.csv >new.csv
在*nix中:

grep -P -v '^[^;]*;[^;]*;;' old.csv >new.csv
Linux示例:

rojo@pico:~$ grep -P -v '^[^;]*;[^;]*;;' old.csv > new.csv
rojo@pico:~$ cat new.csv
*ARTNR;*BESTAND;*HERSTARTNR;*WG;*WG2;*LWG;*LWG2
5803;0;"PDZ 4,3B  7""SOD323";AKT;;Aktive Bauelemente;
5810;0;61240090;MEC;;Elektromechanik;
5811;0;AT89C55WD-24PU;AKT;ATM;Aktive Bauelemente;Atmel
Windows示例:

C:\Users\me\Desktop>findstr /v "^[^;]*;[^;]*;;" old.csv > new.csv
C:\Users\me\Desktop>type new.csv
*ARTNR;*BESTAND;*HERSTARTNR;*WG;*WG2;*LWG;*LWG2
5803;0;"PDZ 4,3B  7""SOD323";AKT;;Aktive Bauelemente;
5810;0;61240090;MEC;;Elektromechanik;
5811;0;AT89C55WD-24PU;AKT;ATM;Aktive Bauelemente;Atmel

使用python非常简单