在bash上垂直翻转多个字符串
发布时间:2020-12-15 21:19:12 所属栏目:安全 来源:网络整理
导读:我试图垂直翻转任何句子的内容.因此,任何字符串的每个字符都将在同一行中垂直打印.例如: Sample Text: This is an ExampleOutput expected: T i a E h s n x i a s m p l e 在以下方向,我试图实现这一目标,但尚未能够实现. echo "Input provided by user is
我试图垂直翻转任何句子的内容.因此,任何字符串的每个字符都将在同一行中垂直打印.例如:
Sample Text: This is an Example Output expected: T i a E h s n x i a s m p l e 在以下方向,我试图实现这一目标,但尚未能够实现. echo "Input provided by user is $@" for i in $(seq 1 $#); do echo ${!i} | sed 's/./ &/g' | xargs |tr ' ' 'n' done Current output: T h i s i s a n E x a m p l e 此外,这也没有帮助 echo Print text vertically | fold -c -w1 T h i s i s a n E x a m p l e 更多替代方案没有奏效: #echo "Input provided by user is $@" for i in $(seq 1 $#); do content[i]=$(echo ${!i}|fold -c -w1) #echo ${content[i]} done echo ${content[@]} 解决方法
max变量保存所有单词的最大长度.对于你的文本,它将是:length(‘Example’)是7(所有单词的长度中的最大值)
使用awk脚本文件: $awk -f script.awk <<< "This is an Example" TiaE hsnx i a s m p l e 以下是脚本: { max=0 for(i=1;i<=NF;i++) max=length($i)>max?length($i):max; for(j=1;j<=max;j++) { for(i=1;i<=NF;i++) { temp=substr($i,j,1); printf temp==""?" ":temp } printf "n" } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |