用于删除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非常简单