awk '{print "\("$1" \pm "$2"\) & \("$3" \pm "$4"\) \\"}'
Então usei o awk algumas vezes para adicionar ou remover texto de cada linha de um arquivo de texto. O que eu gostaria de aprender agora é adicionar alguns caracteres a cada linha em vários lugares.
O que isso significa é para minhas tabelas de dados em latex. Por exemplo, eu posso ter um arquivo parecido com isto:
mass merror velocity verror
1.0 0.1 2.0 0.2
1.5 0.2 1.0 0.2
2.0 0.3 0.5 0.1
agora para exibir isso como uma tabela em latex, preciso adicionar "&" entre as colunas. Eu quero que seja 2 colunas com um símbolo +/- separando os valores de erro. Também precisa estar no modo matemático em cada valor. Se você não conhece o látex, não se preocupe. O código de saída que eu quero é exatamente isso:
\(mass \pm \merror\) & \(velocity \pm verror\) \
\(1.0 \pm 0.1\) & \(2.0 \pm 0.2\) \
\(1.5 \pm 0.2\) & \(1.0 \pm 0.2\) \
\(2.0 \pm 0.3\) & \(0.5 \pm 0.1\) \
Por isso, quero adicionar "(" antes da primeira e da terceira coluna dos meus dados "\ pm" antes da segunda coluna e quarta coluna dos meus dados e ")" no final da segunda e quarta coluna. Eu já sei como adicionar o \ no final.
awk '{print "\("$1" \pm "$2"\) & \("$3" \pm "$4"\) \\"}'
A maneira awk
que você recebeu nos comentários deve ser perfeita. Veja como fazer a mesma coisa em Perl:
perl -lane 'print "\($F[0] \pm \$F[1]) & \(\$F[2] \pm \$F[3]) \\"' file
Tags text-processing latex awk