Comando Shell para resolver um problema [RESOLVIDO]

1. Comando Shell para resolver um problema [RESOLVIDO]

arthur victor franco de arruda
vfraanco

(usa Ubuntu)

Enviado em 28/10/2019 - 11:42h

olá pessoal, foi proposto na faculdade que resolvesse uma questão através do terminal, porém nao estou entendendo a logica da pergunta
a pergunta é a seguinte:
a)Criar um ficheiro result.txt com a primeira linha de todas os ficheiros textXX.tx, sabendo que XX pode representar um numero entre 00 e 99
b)criar o ficheiro resultFile.txt contendo o nome de todos os ficheiros .txt existentes no diretório atual. Este ficheiro deve ser criado no diretório "pai" do atual
c)determine quantos ficheiros cujo o nome termina em .txt existem nos subdiretórios cujo o nome começa por um numero

por favor me ajudem, ja quebrei a cabeça e nao conseguir entender nada do que se passa


  


2. MELHOR RESPOSTA

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 28/10/2019 - 12:58h

vfraanco escreveu:

olá pessoal, foi proposto na faculdade que resolvesse uma questão através do terminal, porém nao estou entendendo a logica da pergunta
a pergunta é a seguinte:
a)Criar um ficheiro result.txt com a primeira linha de todas os ficheiros textXX.tx, sabendo que XX pode representar um numero entre 00 e 99
b)criar o ficheiro resultFile.txt contendo o nome de todos os ficheiros .txt existentes no diretório atual. Este ficheiro deve ser criado no diretório "pai" do atual
c)determine quantos ficheiros cujo o nome termina em .txt existem nos subdiretórios cujo o nome começa por um numero

por favor me ajudem, ja quebrei a cabeça e nao conseguir entender nada do que se passa



mais ou menos isso , vai fazendo testes com esses comandos
qualquer coisa o google também pode ajudar

um exemplo ai tu vai ter que usar um laço de repetição
A) head -n 1 <arquivo a ler> >> result.txt

B) ls *.txt > resultFile.txt

C) ls -la|grep -e ".txt"|wc -l

3. Re: Comando Shell para resolver um problema

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 28/10/2019 - 13:33h

Ficheiro é isso: https://pt.wikipedia.org/wiki/Arquivo_de_computador
Linhas: Um arquivo de texto é uma espécie de ficheiro informático que é estruturado como uma sequência de linhas. Dentro desse ficheiro tem linhas semelhantes a de um livro.
Diretório: Em informática, diretório, diretoria ou pasta é uma estrutura utilizada para organizar arquivos em um computador ou um arquivo que contém referências a outros arquivos. https://pt.wikipedia.org/wiki/Diret%C3%B3rio_(computa%C3%A7%C3%A3o) "Atual" é o diretório onde o gerenciador de arquivo esta atualmente. No caso como esta dizendo para você criar arquivos em uma pasta especifica o questionamento já deduz que o diretório atual é o local onde esta os arquivos. https://pt.wikipedia.org/wiki/Gerenciador_de_arquivos
Diretório pai: é o primeiro diretório das pastas. Só que como o questionamento esta falando de pastas especificas é o primeiro diretório das pastas especificadas no questionamento.
Subdiretórios: São os diretórios que ficam apos o diretório pai.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


4. Re: Comando Shell para resolver um problema [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/10/2019 - 16:54h


vfraanco escreveu:

olá pessoal, foi proposto na faculdade que resolvesse uma questão através do terminal, porém nao estou entendendo a logica da pergunta
a pergunta é a seguinte:
a)Criar um ficheiro result.txt com a primeira linha de todas os ficheiros textXX.tx, sabendo que XX pode representar um numero entre 00 e 99
b)criar o ficheiro resultFile.txt contendo o nome de todos os ficheiros .txt existentes no diretório atual. Este ficheiro deve ser criado no diretório "pai" do atual
c)determine quantos ficheiros cujo o nome termina em .txt existem nos subdiretórios cujo o nome começa por um numero

por favor me ajudem, ja quebrei a cabeça e nao conseguir entender nada do que se passa


Boa tarde vfraanco.
Segue:
Para os testes, fiz o seguinte:
#Cria os Diretórios FICHEIROS/00_DIR FICHEIROS/01_DIR FICHEIROS/02_DIR FICHEIROS/03_DIR FICHEIROS/04_DIR
mkdir -p 'FICHEIROS/'{00..04}'_DIR'

#Cria 100 arquivos de texto, com 5 linhas
for N in {00..99};do
DIR="FICHEIROS/0$(( ((10#$N))%5))_DIR";
echo "1ª Linha do Arquivo TESTE_${N}.txt
2ª Linha do Arquivo TESTE_${N}.txt
3ª Linha do Arquivo TESTE_${N}.txt
4ª Linha do Arquivo TESTE_${N}.txt
5ª Linha do Arquivo TESTE_${N}.txt" > ${DIR}/TESTE_${N}.txt;
done

RESULTADOS:
#Busca os arquivos com o padrão especificado, "pega" a 1ª linha e envia para result.txt
find FICHEIROS/ -regextype posix-extended -regex 'FICHEIROS/[0-9]+_DIR/TESTE_[0-9]+\.txt' -exec sed -n '1p' {} \; > result.txt

#Busca os arquivos com o padrão especificado, coloca os nomes em: resultFile.txt
find FICHEIROS/ -regextype posix-extended -regex 'FICHEIROS/[0-9]+_DIR/TESTE_[0-9]+\.txt' >> resultFile.txt

#Conta total de linhas (arquivos) em resultfile.txt
wc -l < resultFile.txt

Importante: echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts