![如何将文件作为变量读入shell脚本?](https://linux22.com/image/83388/%E5%A6%82%E4%BD%95%E5%B0%86%E6%96%87%E4%BB%B6%E4%BD%9C%E4%B8%BA%E5%8F%98%E9%87%8F%E8%AF%BB%E5%85%A5shell%E8%84%9A%E6%9C%AC%EF%BC%9F.png)
我需要编写一个 shell 脚本来读取文本文件并对其执行操作以计算文本文件中所有不同的单词。
我拥有执行这些操作所需的所有命令,但是如何将文本文件输入到 shell 脚本中,然后通过命令使用呢?
所以我使用的命令是这样的,我如何将 text.txt 作为变量,以便我可以在脚本中调用该变量?
tr '[A-Z]' '[a-z]' < text.txt
答案1
您可以使用简单的命令替换:
variable=`cat text.txt`
echo $variable
或者在bash中:
variable=$(cat text.txt)
与以下相同:
variable=`tr '[A-Z]' '[a-z]' < text.txt`
答案2
tr、wc等工具可以对文件进行操作;你不有将字符串传递给他们的标准输入。回答你的问题:
我该如何将 text.txt 作为变量,以便我可以在脚本中调用该变量?
其语法是:
input=text.txt # or other file name
tr '[A-Z]' '[a-z]' $input
答案3
示例文件
foo
bar
foo bar
foobar f0o b@rred
生成通过
echo -e 'foo\n\t\tbar\n foo bar\nfoobar f0o b@arred' | tee -a /tmp/foo.bar
bash 变量中的文件连续性(速记为了$(cat file)
)
v="$(</tmp/foo.bar)"
使用变量作为另一个命令的输入(去除不可打印的字符)
sed 's#@#a#; s@0@o@' <<<"${v//[![[:print:]]]}" | tail -1
应输出最后一行,替换@
为a
和0
o
foobar foo barred
我也希望研究一下mkfifo
......祝 text.txt 解析好运。