【发布时间】:2020-07-28 07:55:14
【问题描述】:
我有很多文件,想用它们的名字作为命令的参数,这样命令就变成了
<command> <option> <file1> <option> <file2> ...
对于每个文件名,我想在其前面加上选项名称。我不知道有多少个文件。我怎样才能做到这一点? bash/shell 有类似map 的东西吗?
文件存在,所以我会使用find 获取名称,或者如果我确定文件名,可能会使用ls,所以我正在寻找类似xargs 的东西
ls -1q <pattern> | xargs <command> ...
但不是 xargs 所做的(将其转换为每个文件的一个命令),我想要一个带有多个参数的单个命令,并在所有文件名之前插入 <option>。
在我的具体示例中,我想将未知数量的覆盖数据文件与一个命令组合:
lcov -o total.coverage -a <file1> -a <file2> ...
这是在 Makefile 中,但我更喜欢“标准”外壳方法。
【问题讨论】:
-
列表来自哪里?
-
I have list of filenames文件名是如何存储的?在 bash 数组中?在一个文件中?在变量中?在make变量中?在 bash 变量中?变量中的条目是否由换行符分隔?它们是零终止的吗?通过其他角色?请发布一些代码。Does bash/shell have something similar to map?是的,bash 有关联数组.. -
他们不是来自任何地方。编辑得更清楚。
-
The files exists so I would get the names using lsdo not parse ls output -
然后至少使用
ls -1。 (ls -1q)
标签: bash shell dictionary options