Bash - 大括号解析的相反顺序

Bash - 大括号解析的相反顺序

这样的代码

$ ls {a,b}{c,d}

ls对以下文件运行命令: acadbcbd
有没有一种简单的方法来反转解析顺序并生成这样的序列:ac, bc, ad, bd

编辑
我想对目录子集中的特定文件子集运行 grep,如下所示:

$ grep 'find this' {sub_dir_one,sub_dir_two}/some_loc/{file_one,file_two}

我想要来自两个的行file_one,然后两个file_two关于sub_dir_onesub_dir_twoorder 的行。

我只是想知道是否有一些不错的技巧可以阻止我使用循环。

答案1

根据 bash 手册页,在该Brace expansion段落中,

每个扩展字符串的结果都没有排序;保留从左到右的顺序

因此,另一种方法是使用for循环:

for i in file_one file_two; do
   grep 'find this' {sub_dir_one,sub_dir_two}/some_loc/"$i"
done

相关内容