У меня есть CSV файл (CSV UTF-8 (Comma delimited) (. csv)) с 5 столбцами: данные клиента, имя клиента, email клиента, причина отмены, комментарии причины отмены
Как мне отфильтровать строки, в которых в столбце причины отмены есть "Хотел получить товар позже, решил не получать его позже", а затем прочитать их в новый файл input1.csv?
Ниже приведено то, что я пробовал, но input1.csv получился пустым:
awk -F , '$4 == "Wanted item later, choose not to get it later" { print }' input.csv > input1.csv
Вот пример ввода из файла input.csv:
cancellation date,customer first name,customer email,cancel reason,cancel reason comments
1/22/17,aaaa,xxxxx@xxxxx.com,"Wanted item later, choose not to get it later", test
В соответствии с моим ответом на ваш предыдущий вопрос , используя csvkit
и предполагая, что CSV правильно процитирован и использует запятые в качестве разделителей:
$ csvgrep -c "cancel reason" \
-m "Wanted item later, choose not to get it later" input.csv >input1.csv
или
$ csvgrep -c 4 -m "Wanted item later, choose not to get it later" input.csv >input1.csv
Похоже, вы ожидаете иметь 5 полей. Это позволит идентифицировать строки с большим количеством полей:
awk -F, 'NF > 5' input > output
Это не ищет специально запятую в четвертом поле.