in reply to Delete lines from CSV where column cell value is null
#!/usr/bin/perl use strict; use warnings; use Text::CSV_XS qw{ csv }; csv(in => shift, eol => "\n", filter => {1 => sub { length }, 5 => sub { length }});
It will only keep the lines where columns 1 and 5 (1-based) have a non-zero length.
Tested on:
1,2,3,4,5,6 keep,keep,keep,keep,keep,keep ,delete,delete,delete,delete,delete keep,,,,keep, delete,delete,delete,delete,,delete keep,2,3,4,keep,6 ,delete,delete,delete,,delete
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
|
|---|