这样的代码
$ ls {a,b}{c,d}
ls
对以下文件运行命令: ac
、ad
、bc
、bd
。
有没有一种简单的方法来反转解析顺序并生成这样的序列: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_one
和sub_dir_two
order 的行。
我只是想知道是否有一些不错的技巧可以阻止我使用循环。
答案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