Заполнение пустых ячеек и создание одинаковых типов данных в файле, разделенном табуляцией

Я бы использовал testdisk . (убедитесь, что вы не записываете на диск, пока не будете уверены ). Это поможет вам попробовать разные варианты доступа к диску, и в случае успеха позволит вам даже показать данные на диске (, которые также можно скопировать )на другой диск. После резервного копирования я бы попытался записать данные о геометрии диска, которые он находит, и попробовать, можете ли вы теперь получить доступ к диску на своем компьютере без тестового диска.

Будьте осторожны с этим инструментом, но в таких случаях он очень помогает.

0
11.05.2020, 18:21
3 ответа
awk 'BEGIN { FS=OFS="\t" } NR > 1 { $2 = sprintf("%d", $2) }; 1' file >file.new

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

Если вам нужен вывод с плавающей запятой, например. с двумя десятичными знаками используйте %.2fвместо %dв качестве строки формата при вызове sprintf().

Вывод будет разделен табуляцией -.

После того, как вы осмотрели новый файл на глаз, просто mvзамените его старым файлом.

1
28.04.2021, 23:15

просто сделай:

gawk -i inplace -F'\t' 'NR>1{ $2*=1 }1' OFS='\t' infile

, однако -i inplaceне творит такой магии и создает временный файл, который затем заменяется после завершения процесса. так что вы также можете сделать

awk -F'\t' 'NR>1{ $2*=1 }1' OFS='\t' infile > newfile

Затем либо удалите исходный файл, либо переименуйте новый файл в исходный файл.

0
28.04.2021, 23:15

Можешь попробовать Миллер

mlr --csvlite --fs tab put '$val = is_empty($val) ? 0 : int($val)' file

Миллер предоставляет в -режиме места , если вы захотите попробовать его.

1
28.04.2021, 23:15

Теги

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