Como ler um arquivo em um script de shell como uma variável?

1

Eu preciso escrever um script de shell para ler um arquivo de texto e executar operações nele para contar todas as palavras distintas no arquivo de texto.

Eu tenho todos os comandos necessários para fazer essas operações, mas como eu iria introduzir o arquivo de texto no shell script para usar os comandos?

então, um comando que eu uso é isto, como eu iria sobre ter o text.txt como uma variável para que eu pudesse simplesmente chamar a variável no script?

tr '[A-Z]' '[a-z]' < text.txt
    
por Dylan Steele 12.02.2016 / 01:44

3 respostas

0

Você pode usar uma substituição de comandos simples :

variable='cat text.txt'
echo $variable

Ou no bash:

variable=$(cat text.txt)

O mesmo que:

variable='tr '[A-Z]' '[a-z]' < text.txt'
    
por 12.02.2016 / 01:56
1

Ferramentas como tr e wc podem operar em arquivos; você não tem para passar strings para seu stdin. Para responder à sua pergunta:

how would I go about having the text.txt as a variable so that I can just call the variable in the script?

A sintaxe para isso é:

input=text.txt # or other file name
tr '[A-Z]' '[a-z]' $input
    
por 12.02.2016 / 03:35
0

Exemplo de arquivo

foo
        bar
    foo bar
foobar f0o b@rred

Gerado via

echo -e 'foo\n\t\tbar\n    foo bar\nfoobar f0o b@arred' | tee -a /tmp/foo.bar

Continência do arquivo na variável bash ( short-hand para $(cat file) )

v="$(</tmp/foo.bar)"

Use variável como entrada (sem caracteres não imprimíveis) para outro comando

sed 's#@#a#; s@0@o@' <<<"${v//[![[:print:]]]}" | tail -1

Deve produzir a última linha, substituindo @ por a e 0 por o

foobar foo barred

Também um desejo meu de olhar para mkfifo ... boa sorte com a análise text.txt.

    
por 09.10.2018 / 10:44

Tags