Bash

將多個文件的內容提供給腳本的標準輸入的簡寫

  • September 2, 2018

假設我有一個名為 的腳本script,它從螢幕上讀取stdin並吐出一些結果。

如果我想提供一個文件的內容,我會輸入:

$ ./script < file1.txt

但是,如果我想以相同的方式將多個文件的內容提供給腳本,這有可能嗎?到目前為止,我想出的最好的是:

cat file1.txt file2.txt > combined.txt && ./script < combined.txt

它使用兩個命令並創建一個臨時文件。有沒有辦法做同樣的事情,但繞過創建組合文件?

您可以使用cat管道:

cat file1 file2 file3 ... fileN | ./script

您的範例,使用管道,沒有臨時文件:

join file1.txt file2.txt | ./script

如果您不想使用管道,則可以使用帶有程序替換的輸入重定向:

./script <(cat file1 file2)

引用自:https://unix.stackexchange.com/questions/20285