我正在尝试学习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));
}
}
Run Code Online (Sandbox Code Playgroud)
上面代码段的输出以:
aa
ab
ac
ad
ae
af
Run Code Online (Sandbox Code Playgroud)
最后是:
_g
_1
_2
_3
_4
_5
__
Run Code Online (Sandbox Code Playgroud)
我的目标是有一个允许的字符列表(不一定是上面的那些)并打印出长度为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,_}
Run Code Online (Sandbox Code Playgroud)
但是,您可能需要第二遍将其拆分为线条.
或者,您当然可以使用几个嵌套循环,如示例所示:
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6440 次 |
最近记录: |