Vamos quebrar isso. awk '{foo}' file aplicará a expressão foo a cada linha de file e imprimirá o resultado no terminal (saída padrão). awk divide suas linhas de entrada no espaço em branco (por padrão) e salva cada campo como $1 , $2 etc.
Assim, a expressão real que você está executando significa: leia cada linha de entrada, adicione 0,45 ao valor do primeiro campo e depois imprima esse campo, assim como o segundo e o terceiro. Isso é mais facilmente explicado com um exemplo simples:
$ cat file.txt
10 20 30 40
50 60 70 80
$ awk '{print $1+0.45 " " $2 " " $3 }' file.txt
10.45 20 30
50.45 60 70
Portanto, como você pode ver, o script awk adicionou 0,45 ao primeiro campo de cada linha e depois imprimiu junto com o segundo e o terceiro. O quarto foi ignorado desde que você não disse para imprimir $4 .
O próximo bit não tem nada a ver com awk , o símbolo > é para redirecionamento de saída e é usado pelo shell (bash ou zsh ou o que você estiver usando). Em geral, command > file salvará a saída de command no arquivo file sobrescrevendo o conteúdo do arquivo se ele existir e criando-o se não existir.
Colocando tudo junto:
$ ls
file.txt
$ cat file.txt
10 20 30 40
50 60 70 80
$ awk '{print $1+0.45 " " $2 " " $3 }' file.txt > file2.txt
$ ls
file2.txt file.txt
$ cat file2.txt
10.45 20 30
50.45 60 70