Почему выход свободных -ч отличается от свободных --гига?

если ваша цель — перехватить поля, начинающиеся с пробела, используйте sed и Miller(https://github.com/johnkerl/miller)

sed -r 's/, /|/g' input.csv | mlr --csv put -S 'for (k in $*) {$[k] = gsub($[k], "[|]", ", ");}'

У вас будет

BusinessDate,SourceSystemId,IceIndexId,IceIndexName,ComponentId,ComponentReferenceType,ComponentType,ComponentName,ComponentIssuerCIS,ComponentIssuerName,ComponentWeighting,IceCurveID,IceCurveName,RiskyCurveCIS,OriginalWeighting,DerivedWeighting,indexType,cafName,indexStartDate,indexCurrency,componentCurrency
2019-09-19,ICEEUR,11260370,risky_CMBX3_AM_19HGEMAC7.usd,20173QAG6,CUSIP,BOND,GCCFC 2007-GG9 A-M,FCMT7US,COML MORT TST 2007-GG9,0.04,19063270,risky_20173QAG6_FCMT7US.usd,FCMT7US,0.04,0.04,indexCds,index_risky_CMBX3_AM_19HGEMAC7.usd,2010-02-09,USD,USD
2019-09-19,ICEEUR,11260370,risky_CMBX3_AM_19HGEMAC7.usd,61753JAF6,CUSIP,BOND,MSC 2007-IQ13 AM,Z01IYUS,MORGAN STNLY CAP I TST 2007-IQ13,0.04,19059680,risky_61753JAF6_Z01IYUS.usd,Z01IYUS,0.04,0.04,indexCds,index_risky_CMBX3_AM_19HGEMAC7.usd,2010-02-09,USD,USD
2019-09-19,ICEEUR,12345400,risky_itraxx_europe32_14.eur,XSNOREFOB258,ISIN,BOND,NOREFOB_BANCO_SANTANDER_SA,BBDERES,"BANCO SANTANDER SA, MADRID HO",0.008,20286090,risky_bank_bsch_14.eur,BBDERES,0.008,0.008,indexCds,index_risky_itraxx_europe32_14.eur,2019-09-18,EUR,EUR

0
27.11.2020, 20:44
1 ответ

Обе команды используют разные единицы измерения.:-hпоказывает значения в степени 1024 (обратите внимание на суффикс «Gi», для гибибайт ), --gigaпоказывает значения в степени 1000.

В вашем случае 12 ГБ (гигабайт )равно 12 000 000 000 байт, что равняется 11,2 ГБ (, округленным до ближайшего 0,1 ), которое freeокругляется до 11.

Вы можете заставить free -hиспользовать степени 10 с помощью флага --si:

free -h --si

unitsможет выполнить такие преобразования для вас:

$ units 12GB GiB
    * 11.175871
    / 0.089478485
7
18.03.2021, 22:46

Теги

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