ファイルをシェルスクリプトから変数として読み取るには?

ファイルをシェルスクリプトから変数として読み取るには?

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

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

だから私が使用するコマンドは次のようになります。 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の解析には幸運です。

関連情報