[r...@cerebro ~]# echo -en 'a\nb\nc' | wc -l 2 [r...@cerebro ~]# echo -en 'a\nb\nc' a b c[r...@cerebro ~]# echo -e 'a\nb\nc' a b c [r...@cerebro ~]#
O caso é que o echo, por padrão, já adiciona um \n no fim de linha.. o -n evita isso. -- Flávio do Carmo Júnior aka waKKu 2009/8/11 Elder Marco <[email protected]>: > > >> >> Olá a todos!! >> >> A alguns dias atrás mandei um e-mail sobre sobre um programa em shell >> que contava as linhas realmente utilizadas de códigos fontes de várias >> linguagens. >> Depois eu levantei uma questão. que ficou sem resolução: a de que o wc >> contaria as linhas de forma errada. >> Pois bem como especificada na própria man-page do wc ele não conta >> linhas, e sim newlines (\n). >> >> ou seja, se o exmplo abaixo for mandado para o wc -l: >> >> 1 a \n >> 2 b \n >> 3 c >> >> ele retornará que 2 e não três. para retornar um valor "mais correto", >> você precisa inserir um newline no fim da última linha: >> >> 1 a \n >> 2 b \n >> 3 c \n >> 4 >> >> ou usar nl (leia a man-page do nl) >> >> Bom eu não sabia disso... >> >> Um grande abraço a t...@s >> > > Testei aqui no Fedora 11 e também não tive problemas. Ele contou 3 > linhas em vez de duas. :-) > >
