我正在尝试学习bash字符串处理.如何创建与此Java代码段等效的bash脚本?
String symbols = "abcdefg12345_"; for (char i : symbols.toCharArray()) { for (char j : symbols.toCharArray()) { System.out.println(new StringBuffer().append(i).append(j)); } }
上面代码段的输出以:
aa ab ac ad ae af
最后是:
_g _1 _2 _3 _4 _5 __
我的目标是有一个允许的字符列表(不一定是上面的那些)并打印出长度为2的所有排列.如果可能的话,我想要一个完全依赖于bash并且不需要安装任何其他东西的解决方案.
编辑:只是一个小小的跟进问题:有没有办法用字符串做空格而没有空格分隔子字符串?喜欢LIST ="abcdef12345_"?
这很简单,Bash在输入解析器中做到了.无需代码.尝试:
echo {a,b,c,d,e,f,g,1,2,3,4,5,_}{a,b,c,d,e,f,g,1,2,3,4,5,_}
但是,您可能需要第二遍将其拆分为线条.
或者,您当然可以使用几个嵌套循环,如示例所示:
LIST="a b c d e f 1 2 3 4 5 _"; for a in $LIST ; do for b in $LIST ; do echo $a$b; done; done