Как найти разделитель используемым в txt файле и преобразовать его в запятую разделенный csv?

У меня есть txt файл, который имеет или вкладку или разделитель пространства. Я должен преобразовать его в csv. Как Вы предлагаете сделать настолько использующую командную строку?

$ perl -F"//" -nlae 'for (@F) {$a{$_}++};for (keys %a){print $_ if ($a{$_}+1==5 && !($_=~/\w/))};undef %a' moth_gt.txt

Вышеупомянутая команда ничего не произвела.

Файл похож ниже:

$ head -10 moth_gt.txt 
1.0000  494.5551  234.2510  711.6219  274.2668  481.7198  299.5598  311.0864  339.5756
2.0000  494.6552  233.6892  698.5310  237.2043  478.3979  300.0367  285.5068  300.0367
3.0000  496.0657  234.5680  660.4773  182.6485  477.8938  299.0346  279.7346  239.3273
4.0000  498.0948  236.4126  618.2942  142.6347  477.2553  302.2803  298.6309  175.0104
5.0000  499.2109  237.2335  603.7807  120.0112  473.9058  307.5669  323.1914  136.0130
6.0000  497.2581  236.8611  616.7132  115.5453  473.4415  309.7994  336.1240  123.7323
7.0000  497.2588  237.2343  642.7633  126.7104  471.5815  313.1497  329.7984  132.6645
8.0000  499.1200  239.4676  669.9296  159.0866  470.0935  315.7552  312.3086  156.4817
9.0000  498.0675  237.7640  703.4297  201.8367  468.7934  317.1588  292.7054  184.0948
10.0000  498.9722  237.7636  718.0843  248.8523  469.6981  316.7149  282.5214  219.1346

Используя следующую команду также не помог:

$ cat moth_gt.csv | tr "\\t" "," >  moth_comma.csv
3
задан 10 November 2019 в 19:09

1 ответ

Разделитель полей по умолчанию в awk является любым пробелом - таким образом, Вы не должны волноваться о том, является ли это пробелами или вкладками:

awk '{$1=$1} 1' OFS=, moth_gt.txt

или (больше verbosely)

awk 'BEGIN{OFS=","} {$1=$1; print}' moth_gt.txt

Так же в жемчуге:

perl -alne 'print join ",", @F' moth_gt.txt
6
ответ дан 17 November 2019 в 09:37

Другие вопросы по тегам:

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