
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 a
e 0
poro
foobar foo barred
Também desejo analisar mkfifo
... boa sorte com a análise de text.txt.