Как символы могут быть вставлены в строки, принадлежащие столбцу в результате команды intput с использованием awk и sed

362
Ricky Tigg

Вот формула, которая имеет соответствующую основу для моей цели - среди прочего она печатает только файлы, используя для размеров степени 1024, 2 ^ 10 -. Размер задействованного файла составляет 1382 байта (1,35 КиБ ):

# ls -lh | grep -v '^d' | sed -n '2p' | awk '' 1,4K anaconda-ks.cfg 

Условия для применения в формуле:

  • вставить «» прежде, чем в прошлом характера, относящейся к первому столбцу выходного сигнала ;
  • вставить « И.Б. » после того, как в последнем символе, относящемся к первому столбцу выходного сигнала ;
  • две дробные цифры до ближайшего значения (например, 1,095 = 1,09, 1,096 = 1,10);
  • печать столбцов, связанных с размерами и файлами.

Выход для достижения единожды примененных условий:

# ls -lh | grep -v '^d' | sed <expression> | awk <expression> 1,35 KiB anaconda-ks.cfg 
0
Пожалуйста, объясните, какие результаты вы хотите и какие результаты вы в настоящее время получаете. Также было бы полезно объяснить, почему вы делаете это вообще. uSlackr 5 лет назад 1

1 ответ на вопрос

0
oliv

Вы должны избегать анализа выходных данныхls . Вместо этого используйте statкоманду.

И вместо того, чтобы пытаться создать новый формат чисел, используйте команду numfmtиз coreutils.

Таким образом, вы можете использовать это:

for i in *; do  printf "%s %s\n" $(stat -c %s "$i" | numfmt --to=iec-i --suffix=B --format "%.2f") "$i" done 

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