我会尽量保持简单。我使用sed
命令编辑流的结果如下:
filename_1
filename_2
.
.
filename_n
现在,根据先前结果中的文件数量,我想在 shell 中执行命令,如下所示。
some_command --foo "filname_1" --foo "filename_2" --foo "filename_n" remaining_some_command
其中 --foo 是命令之间的标志,filename_1...filename_n 是其值,具体取决于sed
.
在shell中应该是可以的。但如何呢?
答案1
因此,您有一些命令可以生成文件名列表,每行一个,并且您想为生成的每一行生成--foo
和filename
作为命令行参数?
例如,使用printf
和echo
打印一些行并获取参数:
#!/bin/bash
args=()
while IFS= read -r filename; do
args+=(--foo "$filename")
done < <(printf "test1\ntest2\n")
echo test command "${args[@]}"
打印printf
和test1
,test2
并echo
运行为echo --foo test1 --foo test2
。