5
respostas

No such file or directory

Adicionei ao PATH corretamente, mas qdo chamo o contapalavras ocorre um o erro.

O que fiz de errado?

wc -w *.txt | grep total

Resultado:

rafa@ubuntu:~$ contapalavras
wc: '*.txt': No such file or directory
5 respostas

Tens que colocar .txt no final dos arquivos criados, nao somente o nome do arquivo

rafa@ubuntu:~/scripts$ ls -la
drwxr-xr-x  2 rafa rafa 4096 dez  5 23:38 .
drwxr-x--- 21 rafa rafa 4096 dez  6 12:27 ..
-rw-r--r--  1 rafa rafa   93 dez  5 23:17 arq1.txt
-rw-r--r--  1 rafa rafa  100 dez  5 23:17 arq2.txt
-rwxr-xr-x  1 rafa rafa   25 dez  5 23:19 contapalavras
-rwxr-xr-x  1 rafa rafa   14 dez  5 23:38 contaprocessos

rafa@ubuntu:~/scripts$ cd ..
rafa@ubuntu:~$ contapalavras
wc: '*.txt': No such file or directory

Mas as extensões estão definidas, Isaac.

Já tentou rodar o script de dentro da sua pasta scripts? Pois quando você executa o comando na pasta home, ele não encontra os arquivos (no such file or directory) pois não estão no diretório corrente, uma vez que no seu script o diretório não foi declarado.

Estou tendo o mesmo problema. Tentei o código direto no terminal e funcionou. Arquivos a serem lidos com extensão .txt, demais código exatamente como explicado na Task... No aguardo.

O problema não é o nome dos arquivos ou sua extensão. Na realidade a questão tem a ver com a combinação dos conceitos de PATH e globbing.

Veja que o comando no seu shell script contapalavras não indica explicitamente que deve contar as palavras (wc -w) no diretório ~/scripts.

Desta forma, apesar do diretório ~/scripts estar no $PATH e poder ser executado diretamente, o shell irá substituir *.txt por todos os arquivos que terminem em .txt apenas no diretório corrente ($PWD).

Uma solução para o seu caso, supondo que você queira buscar apenas e sempre no diretório ~/scripts, seria colocar ele fixo no shell script da seguinte forma: wc -w ~/scripts/*.txt | grep total.