smart
Published: (January 14, 2026 at 04:09 PM EST)
1 min read
Source: Dev.to
Source: Dev.to
Bash script for filtering CSV columns
#!/bin/bash
# Usage:
# ./filter.sh file.csv decimals col1 [col2 ... colN]
#
# Example:
# ./filter.sh data.csv 2 45
if [ "$#" -lt 3 ]; then
echo "Usage: $0 file.csv decimals col1 [col2 ... colN]"
exit 1
fi
file="$1"
decimals="$2"
shift 2
cols=$(IFS=,; echo "$*")
awk -F'~' -v OFS='~' -v cols="$cols" -v dec="$decimals" '
BEGIN {
n = split(cols, cidx, ",")
# scaling factor: 10^dec
scale = 1
for (i = 1; i = 0 ? 0.5 : -0.5)) / scale
$col = sprintf(fmt, rounded)
}
}
print
}
' "$file"