Как иметь конечный ноль в CSV

. Вы можете зарегистрировать их, используя iptables:

iptables -A INPUT -p udp -j LOG --log-prefix "udp connection: "
0
27.07.2018, 09:34
3 ответа

Это исключительно поведение средства просмотра CVS, которое вы используете. Я могу воспроизвести ту же проблему с MS Excel.

awk -F "," '{print "=\""$1"\","$2}' test.csv > test3.csv
  • =заставит данные быть текстовыми.

Для редактирования файла.

echo "$(awk -F "," '{print "=\""$1"\","$2}' test.csv)" > test.csv
0
28.01.2020, 04:16

Поскольку программа просмотра CSV, по-видимому, способна обнаруживать числа с плавающей запятой путем включения дробной части, числа должны быть преобразованы так, чтобы они содержали хотя бы один десятичный знак.

Один из способов сделать это с помощьюawk:

awk -F, -vOFS="," '$1 == int($1) { $1 = sprintf("%.1f", $1) } 1' file >newfile

Это позволит проверить первое поле, -разделенное запятыми, чтобы увидеть, является ли оно целым числом. В этом случае поле будет переписано как n.0(, где n— исходное число ). Замыкание 1в коде приведет к выводу всех строк.

Результат записывается в новый файл newfile.

Аналогичное решение с использованиемsed:

sed 's/^\([0-9]*\),/\1.0,/' file >newfile

Здесь мы сопоставляем любое количество цифр, за которыми сразу следует запятая, и заменяем их теми же цифрами .0и запятой. Это проигнорирует числа, которые уже имеют дробные части, но добавит .0к числам, у которых их нет.

0
28.01.2020, 04:16

со ссылкой на ответ .

 awk -F ","  'BEGIN {OFS = FS}{$1="=\""$1"\""; print}' test.csv

мы можем не знать, сколько полей в csv. Довольно сложно объявить каждое поле для печати. Так что лучше мы можем отредактировать поле, которое требуется.

0
28.01.2020, 04:16

Теги

Похожие вопросы