我想在几个文件上运行awk。我有文件名和文件的路径,但我似乎无法连接这两个。这是我尝试过的:
files=(a b c)
directory=/my/dir
awk $my_script "$directory/${files[@]}"
它解开了第一个文件,剩下的就剩下了。我宁愿不必在我的数组中添加完整路径(这些值在几个地方使用)。我想我想要大括号扩展,但它似乎不适用于数组。我还能做什么?
答案 0 :(得分:5)
使用模式替换(#
表示regexp中的^
):${files[@]/#/$directory/}
答案 1 :(得分:1)
for i in /my/dir/[abc]; do
awk $my_script "$i"
done
或者,如果你想实际上只是立即将所有文件名传递给awk:
awk $my_script /my/dir/[abc]
如果文件名实际上不是单个字母:
awk $my_script /my/dir/{file1,file2,file3,...}