如何將檔案當作變數讀入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 解析好運。

相關內容