Isso parece um caso em que cut será melhor que awk :
cut -d , -f1-20 Precipitation.csv > aaa1
cut -d , -f21-40 Precipitation.csv > aaa2
cut -d , -f41-100 Precipitation.csv > aaa3
-d , especifica o delimitador (uma vírgula, já que a entrada é chamada de CSV, mas você pode alterar isso). -f N-M seleciona campos N a M inclusive para estar na saída. Se houver vírgulas embutidas em qualquer campo, isso irá quebrar. Nesse caso, você provavelmente precisará de um analisador CSV real, embora seja possível hackear algo se isso realmente não for possível.
A saída usará o mesmo delimitador da entrada. O GNU cut suporta uma opção --output-delimiter=STRING para definir um delimitador diferente, mas não acho que outros Faz. O cut do FreeBSD inclui um -w opção dividida por espaço em branco que está mais próxima de qual awk faz por padrão. Se você quiser um desses comportamentos em outro lugar, transformar o delimitador antes / depois é provavelmente sua melhor aposta.