Кажется, что Вам нужен инвертированный статус выхода, таким образом, Вы могли сделать:
system("[ ! -e file ]; echo $?")
или:
system("[ -e file ]; echo $((!$?))")
(отметьте это -f
для того, если файл существует и является регулярным файлом).
Это, более легко покончили perl
:
perl -pe 's/[-+]?\d*(?:\.?\d|\d\.)\d*(?:[eE][-+]?\d+)?/sprintf("%.2g",$&)/ge'
Если Вы только имеете awk в наличии:
awk '{
while (match($0, /[0-9]+\.[0-9]+/)) {
printf "%s%.2f", substr($0, 1, RSTART-1), substr($0, RSTART, RLENGTH)
$0 = substr($0, RSTART+RLENGTH)
}
print
}'
0.037
для меня, который является точностью 2. Возможно, Вы хотите.2f
вместо.2g
для 2 цифр после десятичной точки (0.04) или.2e
(3.75e-02) – Stéphane Chazelas 08.11.2013, 17:10