perl -ne 'print if /^([^,]*,){2}\h*[^\h,]/' yourcsvfile
Мы просматриваем первые два поля csv, а затем проверяем, есть ли в конце второго и начале третьего поля хотя бы не горизонтальный пробел, не запятая. Когда он совпадает, мы нашли нашу линию.
perl -F, -lane 'print if $F[2] =~ /\S/' yourcsvfile
Мы разбиваем строку на поля с разделителями-запятыми, хранящиеся в массиве @F
, затем ищем 3-й $F[2]
и смотрим, есть ли в нем хотя бы один неверный -whitespace \S
в нем.
sed -e '
s/,/\n/2;s/,/\n/2
/\n[[:space:]]*\n/d
y/\n/,/
' yourfile.csv
Выделите третье поле символом новой строки. Затем, когда есть все пробелы или ничего между двумя маркерами => строка, которую нужно удалить. OTW, мы меняем маркеры, и sed
по умолчанию печатает пространство шаблонов.