bash - 如何将文件的每一行用作 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 来执行此操作,但是当我查找示例和手册页时,这对我来说没有意义。有人可以帮忙吗?
解决方案
使用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
但是,如果任何文件名包含空格,这将不起作用。
推荐阅读
- android - 创建/登录用户后立即出现 Firebase NullPointerException
- python - 是否有一种更简洁的方法可以将需要多个数据框列的函数应用于分组数据?
- c - 有没有更好的方法来改变结构中的每个变量,C
- javascript - TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。启动反应应用程序时收到未定义的类型
- javascript - CheckBox 在使用 Flatlist 呈现的 ListItem 中不起作用
- php - Laravel 中的注册和登录表单不起作用
- c# - 为什么 Azure Function 应用程序中使用的 Microsoft.Azure.WebJobs.HttpTriggerAttribute 是参数属性而不是方法属性?
- javascript - 调用局部视图 JavaScript 函数
- javascript - 为什么我的动态生成的椭圆变成了正方形?
- unity3d - 我无法在 Unity 更新我的预制件,因为覆盖选项被涂黑了