/wrote/ {
split($2, bytes, "/")
- bytes_written = bytes[1]
+ bytes_written = strtonum(bytes[1])
- offset = $NF
+ offset = strtonum($NF)
unit_start = offset / unit_size
unit_start = int(unit_start)
_filter_od()
{
BLOCK_SIZE=$(_get_block_size $SCRATCH_MNT)
- while read line; do
- if test "$line" = '*'
- then
- printf '*\n'
- continue
- fi
-
- offset="${line%% *}"
- printf '%o%s\n' $((offset / BLOCK_SIZE)) "${line#$offset}"
- done
+ $AWK_PROG -v block_size=$BLOCK_SIZE '
+ /^[0-9]+/ {
+ offset = strtonum("0"$1);
+ $1 = sprintf("%o", offset / block_size);
+ print $0;
+ }
+ /\*/
+ '
}
# Remove quotes from failed mknod calls. Starting with Coreutils v8.25,
# This function parses the human-readable values produced
# by xfs_quota output
function byte_size(value, result) {
- result = value;
+ result = strtonum(value);
unit = value;
gsub("[0-9][0-9]*", "", unit);
shift = index("KMGTPE", unit);
/CMD/ {
split($3, off, "=")
- offset = off[2]
+ offset = strtonum(off[2])
if (offset != -1)
offset = offset / bsize
split($4, len, "=")
- nr_blocks = len[2]
+ nr_blocks = strtonum(len[2])
if (nr_blocks != -1)
nr_blocks = nr_blocks / bsize
/MAP/ {
split($2, off, "=")
- offset = off[2]
+ offset = strtonum(off[2])
if (offset != -1)
offset = offset / bsize
split($3, len, "=")
- nr_blocks = len[2]
+ nr_blocks = strtonum(len[2])
if (nr_blocks != -1)
nr_blocks = nr_blocks / bsize
/TRUNCATE/ {
split($2, off, "=")
- offset = off[2] / bsize
+ offset = strtonum(off[2]) / bsize
printf(" %s off=%s\n", $1, offset)