Это самая далекая вещь из элегантного, и, возможно, это то, о чем вы уже подумали и ищете лучшее решение, но я работаю над этим раздражением, выполняя серию замен sed, чтобы поместить пробел в пустые поля.У меня они есть в качестве функций в моем bashrc ...
csvcolumn() { sed -e "s/^$2/ $2/" -e "s/$2$/$2 /" -e "s/$2$2/$2 $2/g" -e "s/$2$2/$2 $2/g" $1 | column -t -s$2 ; }
csvcomma() { sed -e 's/^,/ ,/' -e 's/,$/, /' -e 's/,,/, ,/g' -e 's/,,/, ,/g' $1 | column -t -s, ; }
Первый из них использует два аргумента, чтобы иметь возможность указать символ разделителя.Второй - это то же самое, но он принимает только один аргумент и предполагает, что разделитель - это запятая, так как это чаще всего то, что я использую в любом случае.
csvcolumn input.csv ,
или
csvcomma input.csv