ファイルを変数としてシェル スクリプトに読み込むにはどうすればよいでしょうか?

ファイルを変数としてシェル スクリプトに読み込むにはどうすればよいでしょうか?

テキスト ファイルを読み取り、テキスト ファイル内のすべての異なる単語をカウントする操作を実行するシェル スクリプトを作成する必要があります。

これらの操作を実行するために必要なコマンドはすべてありますが、テキスト ファイルをシェル スクリプトに入力してコマンドで使用するにはどうすればよいでしょうか。

私が使用するコマンドはこれです。スクリプト内で変数を呼び出せるように、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

最後の行を出力し、@を に置き換えa0を に置き換えます。o

foobar foo barred

私も調べてみたいことの 1 つですmkfifo...text.txt の解析がうまくいくことを祈っています。

関連情報