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

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

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 executar essas operações, mas como inserir o arquivo de texto no script de shell para usá-lo por meio dos comandos?

então um comando que eu uso é este, como eu faria para ter o text.txt como uma variável para poder simplesmente chamar a variável no script?

tr '[A-Z]' '[a-z]' < text.txt

Responder1

Você pode usar simplessubstituição de comando:

variable=`cat text.txt`
echo $variable

Ou no bash:

variable=$(cat text.txt)

Mesmo com:

variable=`tr '[A-Z]' '[a-z]' < text.txt`

Responder2

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

como eu faria para ter o text.txt como uma variável para poder simplesmente chamar a variável no script?

A sintaxe para isso é:

input=text.txt # or other file name
tr '[A-Z]' '[a-z]' $input

Responder3

Arquivo de exemplo

foo
        bar
    foo bar
foobar f0o b@rred

Gerado por meio de

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

Continência de arquivo na variável bash (forma abreviadapara $(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 gerar a última linha, substituindo @por ae 0poro

foobar foo barred

Também desejo analisar mkfifo... boa sorte com a análise de text.txt.

informação relacionada