awk -F: '{sub(/^ /,"",$2);print $2}' file
SLP_DCEMA100BAK01.1M__GBLON500BAK04.6M
0 (backup)
stu_disk_dcema100bak01
3 (1 month)
1 (duplication)
stu_cc_gblon500bak04
6 (6 months)
Использованиеprintf
:
$ LC_ALL=C printf "%.0f\n" $(echo "3573 * (10 / 100)/1" | bc -l)
357
Использование awk
кажется гораздо более простым,
awk 'BEGIN { print int(3573 * (10/100)/1) }'
357
Я на самом деле не уверен, почему это работает, но если вы сначала сохраните уравнение в переменной, вы можете использовать шкалу 0:
echo "x = 3573 * (10 / 100); scale=0; x/1" | bc -l
Другие выходы, где мы играем с порядком операций:
echo "scale=0; 3573 * 10 / 100" | bc -l # 357
echo "scale=0; 3573 / 100 * 10" | bc -l # 350
@Paul _У Педанта правильная идея:scale
применима ко всем частям расчета. 10 / 100 = 0 при масштабе 0:
$ bc <<< 'scale = 0; 10 / 100'
0
Таким образом, весь расчет оказывается равным 0.