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 <[EMAIL PROTECTED]>:
>>
>> 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 |
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html