如何将文件作为变量读入shell脚本?

如何将文件作为变量读入shell脚本?

我需要编写一个 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

应输出最后一行,替换@a0o

foobar foo barred

我也希望研究一下mkfifo......祝 text.txt 解析好运。

相关内容