如何修改awk关联数组for循环代码使c出现在排列输出中
问题原因及修改方案
根因分析
输出缺失c相关排列的问题出在输入构造的echo命令上:
echo -e参数中的\c是特殊转义符,作用是立即终止后续所有输出,你写的b\c\n中\c会直接截断后续内容,实际喂给awk的输入只有a、b两行,awk的关联数组中不存在c的键,自然不会输出带c的排列。
修改方案
仅需要修正echo命令里的转义符错误,把\c替换为换行符\n即可,修改后的完整代码如下:
awk '{a[$0]} END {for(i in a) for(j in a) for(k in a) print i, j, k}' < <(echo -e 'a\nb\nc\n')
修改后运行即可输出包含a、b、c的所有3元素排列结果,共27行。
内容的提问来源于stack exchange,提问作者Ibrahim Quraish
相关产品推荐
相关产品推荐

