The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Avaliação: Thread Rating: 1 votes, 5.00 average. Display Modes
  #1 (permalink)  
Old 08-26-2007
Baghera baghera is offline
Usuário
  
 

Join Date: Aug 2007
Lugares: 23
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..
  #2 (permalink)  
Old 08-27-2007
ranj @ CHN ranj@chn is offline Forum Advisor  
Jogando com o Ubuntu agora!
  
 

Join Date: Oct 2005
Localização: Chennai
Lugares: 365
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 }

  #3 (permalink)  
Old 08-27-2007
ahmedwaseem2000 ahmedwaseem2000 is offline
Usuário
  
 

Join Date: Aug 2005
Local: Bangalore
Lugares: 219
Tente este:


Código:
awk -v INPUT=$INPUT '
BEGIN { ORS=""}
{

print $0 " "
if (( NR % INPUT ) == 0) {
print "\n"
count++
}

if (( NR % INPUT ) == 1) 
sum += $0

}

END { 
 op = sum/count
print op }' Filename

  #4 (permalink)  
Old 08-27-2007
dennis.jacob dennis.jacob is offline Forum Advisor  
DJ - o aluno
  
 

Join Date: Feb 2007
Local: Singapura / Bangalore / Cochin
Posts: 610
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

  #5 (permalink)  
Old 08-27-2007
Baghera baghera is offline
Usuário
  
 

Join Date: Aug 2007
Lugares: 23
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.
  #6 (permalink)  
Old 08-27-2007
ranj @ CHN ranj@chn is offline Forum Advisor  
Jogando com o Ubuntu agora!
  
 

Join Date: Oct 2005
Localização: Chennai
Lugares: 365
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.
  #7 (permalink)  
Old 08-27-2007
ahmedwaseem2000 ahmedwaseem2000 is offline
Usuário
  
 

Join Date: Aug 2005
Local: Bangalore
Lugares: 219
Citação:
Originally Posted by Baghera View Post
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.
qual é o erro que você está recebendo? o seu trabalho perfeitamente bem para mim. veja abaixo


Citação:
1 2 3 4
5 6 7 8
3
3 é o (1 + 5) / 2 \u003d 3

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.
Closed Thread

Marcadores

Tags
linux

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 09:33.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0