首页 > 解决方案 > 如何将文件的每一行用作 bash 中的输入开关?

问题描述

我有一个文件,其中包含每行的文件名列表。

我的文件.txt:

somepath/Documents/a.txt
somepath/Documents/b.txt
somepath/Documents/c.txt

该文件可以包含任意数量的行。然后我想要做的是运行一个运行 cat 的命令,每行作为输入,例如:

cat <line 1> <line 2> <line 3> new_combination_file.txt

我正在查找此内容,我认为我应该使用 xargs 来执行此操作,但是当我查找示例和手册页时,这对我来说没有意义。有人可以帮忙吗?

标签: bashline

解决方案


使用while read循环将每一行读入一个变量

while read -r filename
do
    cat "$filename"
done < myfile.txt > new_combination_file.txt

您还可以使用xargs

xargs cat < myfile.txt > new_combination_file.txt

但是,如果任何文件名包含空格,这将不起作用。


推荐阅读