2017-10-17 9 views
0

Je veux la taille totale du fichier dans un dossier en utilisant certain fichier commençant par le nom comme abc_1_ * dans le soleil solaris os parce qu'ici je ne peux pas employer du -ch, courant j'utilise la commande de trouvaille je suis obtenir puissance nécessaire, mais je veux arrondir la sortie après la virguleRoundup après décimal dans awk dans solaris

Code actuel: -

echo `find $DUMPDIR -name "${DUMPFILE}*" -exec ls -ltr {} \; | awk ' {s+=$5} END {print s/1024/1024/1024}'` 

sortie: -

1.768932 

sortie souhaitée: -

1.7G 

bien vouloir me aider avec ce que je suis nouveau à solaris

Répondre

0
find $DUMPDIR -name "${DUMPFILE}*" -exec ls -lh {} \; | awk '{print $5}' 

Vous pouvez utiliser l'option extension GNU -h pour ls à imprimer sur des formats en format lisible par l'homme. Note: comme suggéré par @Andrew Henle, -h n'est pas garanti d'être pris en charge dans ls.

Ou simplement utiliser,

ls -lh "$DUMPDIR/${DUMPFILE}*" | cut -d' ' -f 5 
+1

* Vous pouvez directement utiliser l'option '' -h' pour ls' d'imprimer tailles format lisible par l'homme. * Non, vous ne pouvez pas. '-h' est une extension GNU aux [arguments' ls' standardisés] (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html) et il n'est pas garanti d'être supporté. –

+0

Je reçois 0 Go de sortie – Abhinav

+0

echo 'trouver $ DUMPDIR -name" $ ​​{DUMPFILE} * "-exec ls -lh {} \; | awk '{s + = $ 5} FIN {print s/1024/1024/1024}' '"GB" – Abhinav

0

Vous pouvez arrondir un flotteur en awk avec

awk 'BEGIN {fl=1.768932; printf("%.1f G\n", fl)}'