[ajuda] Iniciante Linux [RESOLVIDO]

1. [ajuda] Iniciante Linux [RESOLVIDO]

Marcelo Alves
foyd

(usa Outra)

Enviado em 08/11/2017 - 18:07h

Olá galera tudo bem?
Bom é o seguinte, estou iniciando no mundo Linux, e peguei uma lista de exercício na net sobre linux e não estou conseguido fazer um exercício segue:
Gerar um arquivo chamado "arquivo01.txt" com conteúdo idêntico ao do arquivo "/etc/vimrc". Feito isso, gerar um arquivo chamado arquivo02.txt com o mesmo conteúdo do arquivo arquivo01.txt salvo o fato ds que todas as palavras "set" deverão ser substituídas pela palavra "linux".
Pelo pouco que sei está mais ou menos assim:
cat /etc/vimrc > arquivo01.txt > arquivo02.txt
O que eu não entendi o que significa aquele "ds" e como eu trocaria set pela palavra linux, e seria possível fazer tudo em uma unica linha de comando?

Outra dúvida se por exemplo eu querer gerar aquele arquivo02.txt em uma determinada pasta o código ficaria assim > /pasta/arquivo02.txt?

Além dessas dúvidas, gostaria de saber se fazer estes tipos de exercícios é eficiente p/ ficar bom em linux, ou é melhor pegar um bom livro?
Muito obrigado pessoal!



  


2. MELHOR RESPOSTA

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 08/11/2017 - 18:54h

cat /etc/vimrc > arquivo01.txt ; sed 's/set/linux/g' arquivo01.txt > arquivo02.txt  

cat : exibe o conteúdo do arquivo
> : transfere a saída de um comando para outro lugar (no caso arquivo01.txt)
; : executa outro comando logo em seguida ao anterior
sed : é um editor de texto, faz a substituição de "set" por "linux"

3. Re: [ajuda] Iniciante Linux [RESOLVIDO]

Marcelo Alves
foyd

(usa Outra)

Enviado em 08/11/2017 - 23:16h

Entendi muito obrigado amigo!

Mas não teria como fazer com o tr, só por curiosidade mesmo pois é muito viciante mexer com isso... :)
cat /etc/vimrc > arquivo01.txt | tr <comando_de_troca_letras> > arquivo01.txt > arquivo02.txt


Outra dúvida se por exemplo eu querer gerar aquele arquivo02.txt em uma determinada pasta o código ficaria assim:
cat /etc/vimrc > arquivo01.txt | tr <comando_de_troca_letras> > arquivo01.txt > /pasta_escolhida/arquivo02.txt


4. Re: [ajuda] Iniciante Linux

Antonio Thomacelli
tonnytg

(usa Outra)

Enviado em 09/11/2017 - 00:41h

Grande parte dos comandos Linux tem um retorno, os redirecionadores > ou >> aplicação o resultado tratado dentro de algum lugar.
Perceba que no exemplo acima, você colocou cat /etc/hosts > arquivo.txt essa execução será feita antes de tudo, e não sobrará nada para repassar para o próximo comando,
porque o resultado ( dado ) foi armazenado/guardado dentro de um lugar.

Como não sobra nada, você não pode usar o PIPE, pois ele não consegue trabalhar com o vazio.

E Respondendo sua pergunta, você pode usar o 'tr' sim, porém terá que convocar o conteúdo do arquivo e o resultado depois armazenar dentro do arquivo
Uma curiosidade sobre o TR, ele não tem parâmetro para trabalhar com arquivo, sendo assim você terá que fazer o TR receber os dados do arquivo de algum jeito,
pode ser
 cat /etc/hosts | tr [:lower:] [:upper:] > arquivo-novo.txt  


Ou

 tr [:lower:] [:upper:] < /etc/hosts  


Perceba que houve duas formas de fazer o TR receber os dados, com o PIPE ou com o <
Porém, só foi possível trabalhar com o PIPE porque antes dele, existia dado Palpável


Sobre fazer exercícios para ficar bom, sim, quanto mais coisas correr atrás melhor,
e mesmo com os exercícios ainda compre os Livros e cursos no Udemy.
Quando mais se alimentar, mais forte fica


Att,
Antonio Thomacelli Gomes
http://www.tonnytg.com.br
LPIC-2 Certified Linux Engineers


5. Re: [ajuda] Iniciante Linux [RESOLVIDO]

Marcelo Alves
foyd

(usa Outra)

Enviado em 09/11/2017 - 11:47h

Opa muito brigado brother!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts