![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| du du da lista com total de lista | Movomito | Programação Shell Script e | 3 | 05-04-2008 10:33 |
| lista de colunas inigualado | mohan705 | Programação Shell Script e | 3 | 12-12-2007 10:37 |
| Fila para Colunas | vskr72 | UNIX para Dummies Perguntas & Respostas | 4 | 03-21-2007 09:53 |
| como gerar uma lista aleatória a partir de uma determinada lista | mskcc | Programação Shell Script e | 3 | 05-30-2006 04:30 |
| Comparando um valor diferente em 1 lista com outra lista | manualvin | Programação Shell Script e | 6 | 06-22-2004 07:42 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread |
Avaliação:
|
Display Modes |
|
|
|
||||
|
Lista para colunas e awk ajudar
Oi eu sou novo neste fórum e sou um iniciante quando se trata de programação shell e awk programação. Mas tenho o seguinte problema:
Eu tenho uma lista como esta: 1 2 3 4 5 6 7 8 Ou a partir de um arquivo ou saída de um comando. O que eu gostaria de fazer é mandar esses valores em x colunas com valores em cada coluna como esta: 1 2 3 4 5 6 7 8 Quando x especifica quantas colunas eu gostaria. Então, eu gostaria de adicionar todos os valores da coluna 1 e dividi-la com os números de linhas (neste caso 2). Esqueci uma coisa: isto é para um bourne shell script. É possível ter x como uma variável de entrada, quando executar o script? Ou é possível, em vez de fazer colunas, adicionar a cada elemento x na lista e, em seguida, tomar uma média? Última edição por Baghera; em 08/26/2007 02:09.. |
|
||||
|
adicionar a cada "x" elemento
Código:
awk -v var=4 -f sample.awk inputfile onde é sample.awk Código:
(NR % var ) == 0 { sum+=$0; cnt++}
END {print sum, cnt }
Isso adiciona 4'th cada elemento é a lista. Se você quiser contar a partir da primeira coluna na lista, para alterar o sample.awk Código:
BEGIN { row_cnt=1 }
(NR % row_cnt ) == 0 { sum+=$0; cnt++; row_cnt+=var }
END {print sum, cnt }
|
|
||||
|
cat ficheiro | xargs-n <número de itens em um row> Código:
"/home/tdreader" > cat t.txt 1 2 3 4 5 6 7 8 9 12 12 32 5 66 56 343 8 875 434 0 "/home/tdreader" > cat t.txt | xargs -n 3 1 2 3 4 5 6 7 8 9 12 12 32 5 66 56 343 8 875 434 0 Se é um arquivo com um número em uma linha, ir para esse Código:
cat filename | tr '\n' ' ' | xargs -n 3 |
|
||||
|
Eu realmente aprecio a ajudar.
Gosto do xargs coisa. Será então possível adicionar cada elemento em uma coluna e dividi-lo pelo número de elementos na coluna. Eu usei este comando: awk '(soma + \u003d $ 1 / 2) (sum1 + \u003d $ 2 / 2) END (print soma sum1)' Mas $ 1 / 2 quando o 2 deve ser uma variável (o número de elementos da coluna). Também ranj @ CHN eu não receber o seu script para funcionar, devo estar fazendo algo errado. Eu copiei o que você escreveu e tentei executá-lo com: awk-v var \u003d 2-f reader2.awk testfile.txt Mas eu só obter erros. E eu também tentou fugir ahmedwaseem2000 do programa, mas eu não tive que trabalhar para qualquer um. Eu realmente sinto muito, mas sou um verdadeiro "noob" nisto. Mas a ajuda que você está me dando são inestimáveis. |
|
||||
|
posto que os erros
Do posto os erros e os Unix caixa que você está conectado - O / P de Código:
uname -a Isso poderia ajudar a identificar o problema. Você deve usar 'nawk»Em vez de no Solaris e awk 'basbaque'Se o seu Linux. |
|
||||
|
Citação:
Citação:
VOCÊ PRECISA DE ATRIBUIR VALOR DE "ENTRADA" variável antes de executar o código mais ele lhe dará a "divisão por zero em modulus" como executar INPUT \u003d 4 antes de executar o código. |
![]() |
| Marcadores |
| Tags |
| linux |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|