shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re: Contar linhas entre um determinado texto


From: mop
Subject: Re: Re: Contar linhas entre um determinado texto
Date: Fri, 09 May 2008 15:02:04 -0300

Se o sed funcionar é melhor opção.
Acho que está havendo problema com tab ou com espaçoes múltiplos.

Para matar a dúvida nas duas linhas chave:

Imagino que tem "od" no aix.

Isso é o que eu tenho por aqui e que funcionou com o que postei:

$ grep -m1 SOURCE file|od -t x1                                      
0000000 7c 20 53 4f 55 52 43 45 20 44 49 52 20 7c 20 53
0000020 4f 55 52 43 45 20 46 49 4c 45 20 7c 0a
0000035

$ grep -m1 ^+ file|od -t x1                                          
0000000 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d
0000020 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d
*
0000100 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a
0000115


Flávio, só lembre que as linhas com ".file" se repetem em outras seções:
$ sed -n '/^| SOURCE DIR/,${/data/p}' file | wc -l                   
8
 
Isso, para o meu conteúdo de "file" (o teu txt) que mostrei.



------------------------------------------
>From: "Flavio Junior"
>
>Eu devo ter entendido errado, mas...
>
>Da uma olhadinha:
>http://rafb.net/p/FAYfMg76.html
>
>--
>
>Flavio do Carmo Jr
>
>2008/5/9 mop <address@hidden>:
>>
>> Eis uma idéia com shell.
>> Considerei que o shell lá é o ksh.
>> Eu só tenho o ksh93.
>> Montei uma função "conta".
>>
>> $ cat s
>> #!/bin/ksh
>> conta(){
>> L=${#1};x=0
>> while read R;do
>>  if [ $A ];then
>>  if [ $B ];then
>>   [ "${R:0:1}" == + ]&&B=||{
>>    #echo "$R"
>>    x=$(($x+1))
>>   }
>>  else
>>   [ "${R:0:1}" == + ]&&B=1
>>  fi
>>  else
>>  [ "${R:0:$L}" == "$1" ]&&A=1
>>  fi
>> done
>> echo $x
>> }
>>
>> cat file|conta "| SOURCE DIR"
>>
>> #---fim do arquivo
>>
>>
>> Executando:
>> $ ./s
>> 7
>>
>>
>> Como base:
>> $ cat file
>> | data/input | zzzzzzzzzzzzz.file |
>> +-------------------------------------------------------------+
>> | listing for ROBERT +
>> +-------------------------------+-----------------------------+
>> | SOURCE DIR | SOURCE FILE |
>> +-------------------------------+-----------------------------+
>> | data/input | 1147.file |
>> | data/input | 1478.file |
>> | data/input | 1483.file |
>> | data/input | 2847.file |
>> | data/input | 8284.file |
>> | data/input | 8157.file |
>> | data/input | 1118.file |
>> +-------------------------------+----------------------------+
>> | data/input | zzzzzzzzzzzzz.file |



reply via email to

[Prev in Thread] Current Thread [Next in Thread]