假古文的shell实现方式

假古文大家都不陌生了,实现方式也很多很多,什么在线版本地版都有了。不过今天说的这个方法恐怕不是很多人知道,这是在Linux的bash下用一段脚本实现的。

方法很简单,代码如下:

#!/bin/bash

str=”$*”
row=10
num=$((`echo “$str” | wc -m`-1))
col=$(($num/$row+1))
dmr=$((row-$num%$row))

m=1
n=0
while [ $m -le $col ]; do
arr[m]=`echo ${str:$n:$row} | sed -e ’s/ / /g’ -e ’s/./&│/g’`
let m=m+1
let n=n+row
done

while [ $dmr -gt 0 ]; do
arr[$col]=”`echo ${arr[$col]} | sed ’s/$/ │/’`”
let dmr=$dmr-1
done

for ((i=0;i<=$row*2;i=i+2)) do
echo
for ((j=m;j>=1;j–)) do
echo -n ${arr[j]:i:2}
done
done

愿意用vi在shell里面直接写也行,用记事本写好传上服务器也行,后缀是.sh,假设存成j.sh吧,然后在文件所在目录下输入:

chmod 777 j.sh  //这是让这个文件可以执行

./j.sh  一段文字

效果:

有│四│当│筹│传│未│海│
莫│纪│时│。│宵│卜│外│
愁│为│七│此│柝│此│徒│
。│天│夕│日│,│生│闻│
   │子│笑│六│无│休│更│
   │,│牵│军│复│。│九│
   │不│牛│同│鸡│空│州│
   │及│。│驻│人│闻│,│
   │卢│如│马│报│虎│他│
   │家│何│,│晓│旅│生│

注意如果系统不支持中文的话,就不行了。

本篇的相关推荐

  • No Related Post

About the Author

blacktulip

blacktulip欢迎您来到网贝,如果喜欢这里的文章,请您订阅网贝的RSS。如果您还不熟悉RSS订阅,请参考RSS订阅说明。您可以用阅读器订阅,也可以用电子邮件订阅。RSS订阅能大大节约您宝贵的时间,使您网络冲浪的体验更加良好。

6 Responses to “ 假古文的shell实现方式 ”

  1. 可以的,假古文已经发展到一个境界了。很强大!

    老N的最新blog文章:关闭wordpress2.6的文章版本功能

    [回复此评论]

  2. 最近貌似流行这个,楼主原来还会linux,强!

    一亿度的最新blog文章:第一次有美女投怀送抱

    [回复此评论]

    blacktulip reply on July 15, 2008 2:32 pm:

    俺也是转的..

    [回复此评论]

  3. 唉…别太发达了 会被盯上的

    [回复此评论]

  4. 同意楼上的,我们好可怜。。。

    diciti的最新blog文章:足不出户以三维视角浏览故宫!

    [回复此评论]

  5. 呵呵 纯技术探讨

    [回复此评论]

Leave a Reply

You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>