В настоящее время я пытаюсь создать скрипт awk, который возьмет мой .csv и преобразует его в .tsv. Мне удалось добиться этого с помощью следующего скрипта:
$ awk 'BEGIN { FS=","; OFS="\t" } {$1=$1; print}' file.csv > file.tsv
Пример данных CSV
"visitor_date","country","browser","browser_version","id1","id2","id3","id4","true or false column"
"05/10/2019 00:55","United States","App","","692467","2163702","4117512086","format","0"
"05/10/2019 00:56","United States","SamsungBrowser","8","692467","2163702","4117512083","format","1"
"05/10/2019 01:08","United States","safari","11","692467","2163704","4117511299","format","1"
"05/10/2019 03:25","United States","SamsungBrowser","8","692467","2163704","4117511299","format",""
"05/10/2019 07:50","United States","chrome","58","692467","2163704","4117511299","format",""
"05/10/2019 09:18","United States","internet explorer","11","692467","2163702","4117512086","format","0"
Однако я обнаружил, что мой файл данных имеет тенденцию иметь все столбцы, определенные какжало с "", даже когда у нас есть вещи, которые можно считать целым числом.
Мой первоначальный тест состоял в том, чтобы попытаться удалить {","} из всего, а затем определить вещи как строки в определенных столбцах, но я получаю сообщение об ошибке, когда пытаюсь процитировать его.
$ awk 'BEGIN { FS="",""; OFS="\t" } {$1=$1; print}' file.csv > file.tsv
Ошибка
awk: cmd. line:1: BEGIN { FS="",""; OFS="\t" } {$1=$1; print}
awk: cmd. line:1: ^ syntax error
Из проведенного в Интернете исследования все, что я обнаружил, - это то, как вы можете изменить строковое значение в ячейке на другое целочисленное значение. Есть ли способ, которым я могу преобразовать определенные столбцы (не ячейки), чтобы обрабатывать их как "целые числа" и "даты", а не как строки? Является ли то, что я пытаюсь сделать с моим первоначальным тестом, верным ли мне направлением, или AWK по-другому определяет мои столбцы?
Желаемый вывод tsv
"visitor_date" "country browser" "browser_version" "client_transaction_id" "id1" "id2" "id3" "id4" "true or false column"
05/10/2019 00:55 "United States" "App" null 692467 "2163702" 4117512086 "format" 0
05/10/2019 00:56 "United States" "SamsungBrowser" 8 "null" 692467 2163702 4117512083 "format" 1
05/10/2019 01:08 "United States" "safari" 11 null "692467" 2163704 4117511299 "format" 1
05/10/2019 03:25 "United States" "SamsungBrowser" 8 "null" 692467 2163704 4117511299 "format"
05/10/2019 07:50 "United States" "chrome" 58 null "692467" 2163704 4117511299 "format"
05/10/2019 09:18 "United States" "internet explorer" 11 "null" 692467 2163702 4117512086 "format" 0
Примечание: столбец "visitor_date" должен быть в формате "date".
Извинения, если это что-то супер очевидное или основное. В настоящее время у меня есть только 2-дневный опыт использования интерфейса Ubuntu в Windows 10 и AWK, поэтому я пытаюсь многое понять.