Bash
將多個文件的內容提供給腳本的標準輸入的簡寫
假設我有一個名為 的腳本
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)