ash*_*wer 4 command-line bash alias paths cat
我有两个巨大的文件(每个 150G),我需要使用一种工具,我应该将它们作为单个文件提供(因为该工具只接受一个文件)。但是,出于多种原因,我不想合并这些文件,但我无法使用类似<(cat file1 file2)或 之类的内容对它们进行管道传输myfile=$(cat file1 file2),因为脚本使用输入文件的路径,而不是其内容。
所以我需要类似下面的东西:
alias myfile = "cat file1 file2"
Run Code Online (Sandbox Code Playgroud)
这样使用以下命令就可以工作:
tool_x --file /path/myfile
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个提到的命令,但它不起作用。
我只需要能够将“cat”命令的结果视为实际文件,并且可以使用路径访问该文件。
有可能实现这样的目标吗?
mur*_*uru 17
您可以使用命名管道:
mkfifo /path/myfile
cat file1 file2 > /path/myfile &
Run Code Online (Sandbox Code Playgroud)
在这里,要么cat命令必须发送到后台,要么您可以tool_x在另一个终端中运行,因为cat它将阻塞,直到开始从管道读取内容:
tool_x --file /path/myfile
Run Code Online (Sandbox Code Playgroud)
这本质上就是进程替换自动为您做的事情。