未验证鼠标功能的斜排

sh/bash/dash/ksh/zsh等Shell脚本
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

未验证鼠标功能的斜排

#1

帖子 yjcong » 2008-07-17 2:48

在xiooli的例子里参考solcomo的code. 有2个地方尚待完善.
1>有些特殊符号, 还是没变换好, 譬如:æŧß←€ŧ¶ħđłħ↓ĸµ¹²³¼³ŋ
2>xiooli的鼠标取词没搞清楚
3>code感觉写的很ugly

代码: 全选

./xp.sh "启动后只要右键复制/剪切,然后再粘贴回去还是不能变成斜排的,非常的不方便"
-\启\复\后\是\的\便\
--\动\制\再\不\,\_\
---\后\/\粘\能\非\_\
----\只\剪\贴\变\常\_\
-----\要\切\回\成\的\_\
------\右\,\去\斜\不\_\
-------\键\然\还\排\方\_\

-\a\h\o\v\8\
--\b\i\p\w\9\
---\c\j\q\y\0\
----\d\k\r\s\1\
-----\e\l\s\4\_\
------\f\m\t\5\_\
-------\g\n\u\6\_\
-\启\只\i\切\a\是\
--\动\要\p\,\b\m\
---\后\右\t\然\c\a\
----\b\键\复\后\d\k\
-----\a\s\制\再\回\e\
------\s\c\/\粘\去\不\
-------\h\r\剪\贴\还\能\

====================================
-\变\,\方\_\_\_\
--\成\非\便\_\_\_\
---\d\常\_\_\_\_\
----\o\的\_\_\_\_\
-----\斜\m\_\_\_\_\
------\排\e\_\_\_\_\
-------\的\不\_\_\_\_\

代码: 全选

#!/bin/bash

str=$1
row=7
col=6
tot=$((`echo "$str" | wc -m`-1))
prod=$(($row*$col+1))
unit=$(($tot/$prod+1))
sep=`for ((i=0;i<($row+$col+5);i++));do echo -n '==';done`

count=0
while [ "$count" -lt "$unit" ];do
   for ((v=1;v<$row+1;v++)) do
      beg=`for ((i=0;i<v;i++));do echo -n "-";done`
      arr="$beg"\\
      for ((h=1;h<$col+1;h++)) do
           pos=$(($row*$col*$count+($h-1)*$row+v-1))
           content=`echo  ${str:pos:1}| sed -e 's/ / /g' -e 's/"/"/g' -e "s/'/'/g" -e 's/a/a/g' -e 's/b/b/g' -e 's/c/c/g' -e 's/d/d/g' -e 's/e/e/g' -e 's/f/f/g' -e 's/g/g/g' -e 's/h/h/g' -e 's/i/i/g' -e 's/j/j/g' -e 's/k/k/g' -e 's/l/l/g' -e 's/m/m/g' -e 's/n/n/g' -e 's/o/o/g' -e 's/p/p/g' -e 's/q/q/g' -e 's/r/r/g' -e 's/s/s/g' -e 's/t/t/g' -e 's/u/u/g' -e 's/v/v/g' -e 's/w/w/g' -e 's/x/x/g' -e 's/y/y/g' -e 's/z/z/g' -e 's/A/A/g' -e 's/B/B/g' -e 's/C/C/g' -e 's/D/D/g' -e 's/E/E/g' -e 's/F/F/g' -e 's/G/G/g' -e 's/H/H/g' -e 's/I/I/g' -e 's/J/J/g' -e 's/K/K/g' -e 's/L/L/g' -e 's/M/M/g' -e 's/N/N/g' -e 's/O/O/g' -e 's/P/P/g' -e 's/Q/Q/g' -e 's/R/R/g' -e 's/S/S/g' -e 's/T/T/g' -e 's/U/U/g' -e 's/V/V/g' -e 's/W/W/g' -e 's/X/X/g' -e 's/Y/Y/g' -e 's/Z/Z/g' -e 's/1/1/g' -e 's/2/2/g' -e 's/3/3/g' -e 's/4/4/g' -e 's/5/5/g' -e 's/6/6/g' -e 's/7/7/g' -e 's/8/8/g' -e 's/9/9/g' -e 's/0/0/g' -e 's/,/,/g' -e 's/\./。/g' -e 's/?/?/g' -e 's/\////g' -e 's/:/:/g' -e 's/;/;/g' -e 's/\"/"/g' -e 's/(/︵/g' -e 's/)/︶/g' -e 's/\[/︻/g' -e 's/\]/︼/g' -e 's/{/︷/g' -e 's/}/︸/g' -e 's/!/!/g' -e 's/@/@/g' -e 's/#/#/g' -e 's/%/%/g' -e 's/\^/︿/g' -e 's/\&/&/g' -e 's/\*/*/g' -e 's/-/-/g' -e 's/_/_/g' -e 's/=/=/g' -e 's/+/+/g' -e 's/|/|/g'`\\   
           if [ "$content" = \\ ]||[ $pos -ge $tot ];then
                   content="_"\\
           fi
           arr="$arr""$content"
      done
      echo "$arr" 
  done
  echo
  echo "$sep"
  let count=count+1
done
上次由 yjcong 在 2008-07-17 9:29,总共编辑 1 次。
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#2

帖子 yjcong » 2008-07-17 7:53

小改了一下, 变了个方向。 第一个在我的终端里显示的很好, 但到这里就乱了。 第2个在我的终端里很乱, 到这里就好了, 不知是为什么?
----------/启/键/,/回/变/非/_/
--------/动/复/然/去/成/常/_/
------/后/制/后/还/斜/的/_/
----/只///再/是/排/不/_/
--/要/剪/粘/不/的/方/_/
/右/切/贴/能/,/便/_/
--------------------/启/键/,/回/变/非/_/
----------------/动/复/然/去/成/常/_/
------------/后/制/后/还/斜/的/_/
--------/只///再/是/排/不/_/
----/要/剪/粘/不/的/方/_/
/右/切/贴/能/,/便/_/



代码: 全选

#!/bin/bash

str=$1
row=6
col=7
tot=$((`echo "$str" | wc -m`-1))
prod=$(($row*$col+1))
unit=$(($tot/$prod+1))
sep=`for ((i=0;i<($row+$col+5);i++));do echo -n '==';done` 

count=0
while [ "$count" -lt "$unit" ];do
   for ((v=1;v<$row+1;v++)) do
      beg=`for ((i=2*$row;i>2*v;i--));do echo -n "--";done`
      arr="$beg"/
      for ((h=1;h<$col+1;h++)) do
           pos=$(($row*$col*$count+($h-1)*$row+v-1))
           content=`echo  ${str:pos:1}| sed -e 's/ / /g' -e 's/"/"/g' -e "s/'/'/g" -e 's/a/a/g' -e 's/b/b/g' -e 's/c/c/g' -e 's/d/d/g' -e 's/e/e/g' -e 's/f/f/g' -e 's/g/g/g' -e 's/h/h/g' -e 's/i/i/g' -e 's/j/j/g' -e 's/k/k/g' -e 's/l/l/g' -e 's/m/m/g' -e 's/n/n/g' -e 's/o/o/g' -e 's/p/p/g' -e 's/q/q/g' -e 's/r/r/g' -e 's/s/s/g' -e 's/t/t/g' -e 's/u/u/g' -e 's/v/v/g' -e 's/w/w/g' -e 's/x/x/g' -e 's/y/y/g' -e 's/z/z/g' -e 's/A/A/g' -e 's/B/B/g' -e 's/C/C/g' -e 's/D/D/g' -e 's/E/E/g' -e 's/F/F/g' -e 's/G/G/g' -e 's/H/H/g' -e 's/I/I/g' -e 's/J/J/g' -e 's/K/K/g' -e 's/L/L/g' -e 's/M/M/g' -e 's/N/N/g' -e 's/O/O/g' -e 's/P/P/g' -e 's/Q/Q/g' -e 's/R/R/g' -e 's/S/S/g' -e 's/T/T/g' -e 's/U/U/g' -e 's/V/V/g' -e 's/W/W/g' -e 's/X/X/g' -e 's/Y/Y/g' -e 's/Z/Z/g' -e 's/1/1/g' -e 's/2/2/g' -e 's/3/3/g' -e 's/4/4/g' -e 's/5/5/g' -e 's/6/6/g' -e 's/7/7/g' -e 's/8/8/g' -e 's/9/9/g' -e 's/0/0/g' -e 's/,/,/g' -e 's/\./。/g' -e 's/?/?/g' -e 's/\////g' -e 's/:/:/g' -e 's/;/;/g' -e 's/\"/"/g' -e 's/(/︵/g' -e 's/)/︶/g' -e 's/\[/︻/g' -e 's/\]/︼/g' -e 's/{/︷/g' -e 's/}/︸/g' -e 's/!/!/g' -e 's/@/@/g' -e 's/#/#/g' -e 's/%/%/g' -e 's/\^/︿/g' -e 's/\&/&/g' -e 's/\*/*/g' -e 's/-/-/g' -e 's/_/_/g' -e 's/=/=/g' -e 's/+/+/g' -e 's/|/|/g'`/  
           if [ "$content" = / ]||[ $pos -ge $tot ];then
                   content="_"/
         fi
           arr="$arr""$content"
      done
      echo "$arr" 
  done
echo
  echo "$sep"
 
  let count=count+1
done
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#3

帖子 yjcong » 2008-07-17 8:03

好像这次可以用右键了。 可是在我的本子上粘贴出来的都是些乱码,如下。 终端显示
wc: standard input:1: Invalid or incomplete multibyte or wide character
wc: standard input:2: Invalid or incomplete multibyte or wide character
--------------------/4/a/r/m/b/_/
----------------/:/l/p/m/y/_/
------------/i/i/l/u/t/_/
--------/I/d/n/e/l/e/_/
----/n/c/t/t/_/_/
/v/o/o/e/i/_/_/
谁试试, 看看能否正常的输出,

代码: 全选

#!/bin/bash

format() { 
row=6
col=7
tot=$((`echo "$str" | wc -m`-1))
prod=$(($row*$col+1))
unit=$(($tot/$prod+1))
sep=`for ((i=0;i<($row+$col+5);i++));do echo -n '==';done` 

count=0
while [ "$count" -lt "$unit" ];do
   for ((v=1;v<$row+1;v++)) do
      beg=`for ((i=2*$row;i>2*v;i--));do echo -n "--";done`
      arr="$beg"/
      for ((h=1;h<$col+1;h++)) do
           pos=$(($row*$col*$count+($h-1)*$row+v-1))
           content=`echo  ${str:pos:1}| sed -e 's/ / /g' -e 's/"/"/g' -e "s/'/'/g" -e 's/a/a/g' -e 's/b/b/g' -e 's/c/c/g' -e 's/d/d/g' -e 's/e/e/g' -e 's/f/f/g' -e 's/g/g/g' -e 's/h/h/g' -e 's/i/i/g' -e 's/j/j/g' -e 's/k/k/g' -e 's/l/l/g' -e 's/m/m/g' -e 's/n/n/g' -e 's/o/o/g' -e 's/p/p/g' -e 's/q/q/g' -e 's/r/r/g' -e 's/s/s/g' -e 's/t/t/g' -e 's/u/u/g' -e 's/v/v/g' -e 's/w/w/g' -e 's/x/x/g' -e 's/y/y/g' -e 's/z/z/g' -e 's/A/A/g' -e 's/B/B/g' -e 's/C/C/g' -e 's/D/D/g' -e 's/E/E/g' -e 's/F/F/g' -e 's/G/G/g' -e 's/H/H/g' -e 's/I/I/g' -e 's/J/J/g' -e 's/K/K/g' -e 's/L/L/g' -e 's/M/M/g' -e 's/N/N/g' -e 's/O/O/g' -e 's/P/P/g' -e 's/Q/Q/g' -e 's/R/R/g' -e 's/S/S/g' -e 's/T/T/g' -e 's/U/U/g' -e 's/V/V/g' -e 's/W/W/g' -e 's/X/X/g' -e 's/Y/Y/g' -e 's/Z/Z/g' -e 's/1/1/g' -e 's/2/2/g' -e 's/3/3/g' -e 's/4/4/g' -e 's/5/5/g' -e 's/6/6/g' -e 's/7/7/g' -e 's/8/8/g' -e 's/9/9/g' -e 's/0/0/g' -e 's/,/,/g' -e 's/\./。/g' -e 's/?/?/g' -e 's/\////g' -e 's/:/:/g' -e 's/;/;/g' -e 's/\"/"/g' -e 's/(/︵/g' -e 's/)/︶/g' -e 's/\[/︻/g' -e 's/\]/︼/g' -e 's/{/︷/g' -e 's/}/︸/g' -e 's/!/!/g' -e 's/@/@/g' -e 's/#/#/g' -e 's/%/%/g' -e 's/\^/︿/g' -e 's/\&/&/g' -e 's/\*/*/g' -e 's/-/-/g' -e 's/_/_/g' -e 's/=/=/g' -e 's/+/+/g' -e 's/|/|/g' -e 's/./&//g'`
           if [ "$content" = / ]||[ $pos -ge $tot ];then
                   content="_"/
         fi
           arr="$arr""$content"
      done
      echo "$arr" 
  done
echo
  echo "$sep"
 
  let count=count+1
done|xsel -b -i
}

while true;do
  str0=`xsel -b`
  [ "str0" != "str" ] && str="$str0"
  [ ! "`echo $str0 |grep "/"`" ] && format
  sleep 0.5
done
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#4

帖子 eexpress » 2008-07-17 9:16

鳖人
● 鸣学
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#5

帖子 yjcong » 2008-07-17 17:32

ls人鳖
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#6

帖子 xiooli » 2008-07-17 17:48

--------------------/小/。/我/示/但/了/
----------------/改/变/的/的/到/。/
------------/了/了/第/终/很/这/
--------/一/个/一/端/好/里/第/
----/下/方/个/里/,/就/2/
/,/向/在/显/乱/个/

====================================
--------------------/在/很/里/不/?/_/_/
----------------/我/乱/就/知/_/_/_/
------------/的/,/好/是/_/_/_/
--------/终/了/为/_/_/_/
----/端/到/,/什/_/_/_/
/里/这/么/_/_/_/

====================================
严重怀疑你的机器有问题,我这儿没有乱码啊。
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#7

帖子 xiooli » 2008-07-17 17:51

[ ! "`echo $str0 |grep "/"`" ] && format
lz还是换个斜线符吧,因为斜线很常用,如果复制的文本里面有的话就不会format了,我那个竖线都是找的不常用的制表符。
头像
aobi
帖子: 921
注册时间: 2008-06-22 12:27

#8

帖子 aobi » 2008-07-17 18:32

:wink:
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#9

帖子 yjcong » 2008-07-17 18:54

xiooli 写了:[ ! "`echo $str0 |grep "/"`" ] && format
lz还是换个斜线符吧,因为斜线很常用,如果复制的文本里面有的话就不会format了,我那个竖线都是找的不常用的制表符。

按照你的建议, 换了一个. 你再试试看
.﹎.﹎.﹎.﹎.﹎.﹎.﹎.﹎╱还╱因╱果╱的╱a╱都╱表╱.﹎╱
.﹎.﹎.﹎.﹎.﹎.﹎.﹎╱是╱为╱复╱话╱t╱是╱符╱.﹎╱
.﹎.﹎.﹎.﹎.﹎.﹎╱换╱斜╱制╱就╱了╱找╱.﹎╱.﹎╱
.﹎.﹎.﹎.﹎.﹎╱个╱线╱的╱不╱,╱的╱.﹎╱.﹎╱
.﹎.﹎.﹎.﹎╱斜╱很╱文╱会╱我╱不╱.﹎╱.﹎╱
.﹎.﹎.﹎╱线╱常╱本╱f╱那╱常╱.﹎╱.﹎╱
.﹎.﹎╱符╱用╱里╱o╱个╱用╱.﹎╱.﹎╱
.﹎╱吧╱,╱面╱r╱竖╱的╱.﹎╱.﹎╱
╱,╱如╱有╱m╱线╱制╱.﹎╱.﹎╱

出现问题: 如果有空格, 则后面的内容无法显示, 好像和sed有关

代码: 全选

#!/bin/bash

# ╲  ╱  ﹨   \ 
# ▁  ﹎   ︿  ﹏  ╧

separator="╱"
space=".﹎"

format() { 
row=6
col=7
tot=$((`echo "$str" | wc -m`-1))
prod=$(($row*$col+1))
unit=$(($tot/$prod+1))
sep=`for ((i=0;i<($row+$col+5);i++));do echo -n '==';done` 

count=0
while [ "$count" -lt "$unit" ];do
   for ((v=1;v<$row+1;v++)) do
      beg=`for ((i=$row;i>v;i--));do echo -n "$space";done`
      arr="$beg"$separator
      for ((h=1;h<$col+1;h++)) do
           pos=$(($row*$col*$count+($h-1)*$row+v-1))
           content=`echo  ${str:pos:1}| sed -e 's/ / /g' -e 's/"/"/g' -e "s/'/'/g" -e 's/a/a/g' -e 's/b/b/g' -e 's/c/c/g' -e 's/d/d/g' -e 's/e/e/g' -e 's/f/f/g' -e 's/g/g/g' -e 's/h/h/g' -e 's/i/i/g' -e 's/j/j/g' -e 's/k/k/g' -e 's/l/l/g' -e 's/m/m/g' -e 's/n/n/g' -e 's/o/o/g' -e 's/p/p/g' -e 's/q/q/g' -e 's/r/r/g' -e 's/s/s/g' -e 's/t/t/g' -e 's/u/u/g' -e 's/v/v/g' -e 's/w/w/g' -e 's/x/x/g' -e 's/y/y/g' -e 's/z/z/g' -e 's/A/A/g' -e 's/B/B/g' -e 's/C/C/g' -e 's/D/D/g' -e 's/E/E/g' -e 's/F/F/g' -e 's/G/G/g' -e 's/H/H/g' -e 's/I/I/g' -e 's/J/J/g' -e 's/K/K/g' -e 's/L/L/g' -e 's/M/M/g' -e 's/N/N/g' -e 's/O/O/g' -e 's/P/P/g' -e 's/Q/Q/g' -e 's/R/R/g' -e 's/S/S/g' -e 's/T/T/g' -e 's/U/U/g' -e 's/V/V/g' -e 's/W/W/g' -e 's/X/X/g' -e 's/Y/Y/g' -e 's/Z/Z/g' -e 's/1/1/g' -e 's/2/2/g' -e 's/3/3/g' -e 's/4/4/g' -e 's/5/5/g' -e 's/6/6/g' -e 's/7/7/g' -e 's/8/8/g' -e 's/9/9/g' -e 's/0/0/g' -e 's/,/,/g' -e 's/\./。/g' -e 's/?/?/g' -e 's/\////g' -e 's/:/:/g' -e 's/;/;/g' -e 's/"/"/g' -e 's/(/︵/g' -e 's/)/︶/g' -e 's/\[/︻/g' -e 's/\]/︼/g' -e 's/{/︷/g' -e 's/}/︸/g' -e 's/!/!/g' -e 's/@/@/g' -e 's/#/#/g' -e 's/%/%/g' -e 's/\^/︿/g' -e 's/\&/&/g' -e 's/\*/*/g' -e 's/-/-/g' -e 's/_/_/g' -e 's/=/=/g' -e 's/+/+/g' -e 's/|/|/g' -e 's/./&'$separator'/g'`
           if [ "$content" = "$separator" ]||[ $pos -ge $tot ];then
                   content="$space""$separator"
         fi
           arr="$arr""$content"
      done
      echo "$arr" 
  done
echo
  echo "$sep"
 
  let count=count+1
done|xsel -b -i
}

while true;do
  str0=`xsel -b`
  [ "str0" != "str" ] && str="$str0"
  [ ! "`echo $str0 |grep "$separator"`" ] && format
  sleep 0.5
done
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
sammysun
帖子: 4088
注册时间: 2007-12-08 23:33
来自: SCUT-guangzhou

#10

帖子 sammysun » 2008-07-17 19:27

:lol:
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#11

帖子 yjcong » 2008-07-18 18:41

空格问题解决, 但是单引号和双引号宽度不够

代码: 全选

#!/bin/bash

# ╲  ╱  ﹨   \
# ▁  ﹎   ︿  ﹏  ╧

separator="╱"
space=".﹎"

format() {
row=6
col=7
tot=$((`echo "$str" | wc -m`-1))
prod=$(($row*$col+1))
unit=$(($tot/$prod+1))
sep=`for ((i=0;i<($row+$col+5);i++));do echo -n '==';done`

count=0
while [ "$count" -lt "$unit" ];do
   for ((v=1;v<$row+1;v++)) do
      beg=`for ((i=$row;i>v;i--));do echo -n "$space";done`
      arr="$beg"$separator
      for ((h=1;h<$col+1;h++)) do
           pos=$(($row*$col*$count+($h-1)*$row+v-1))
           content=`echo  ${str:pos:1}| sed -e 's/ / /g' -e 's/"/"/g' -e "s/'/'/g" -e 's/a/a/g' -e 's/b/b/g' -e 's/c/c/g' -e 's/d/d/g' -e 's/e/e/g' -e 's/f/f/g' -e 's/g/g/g' -e 's/h/h/g' -e 's/i/i/g' -e 's/j/j/g' -e 's/k/k/g' -e 's/l/l/g' -e 's/m/m/g' -e 's/n/n/g' -e 's/o/o/g' -e 's/p/p/g' -e 's/q/q/g' -e 's/r/r/g' -e 's/s/s/g' -e 's/t/t/g' -e 's/u/u/g' -e 's/v/v/g' -e 's/w/w/g' -e 's/x/x/g' -e 's/y/y/g' -e 's/z/z/g' -e 's/A/A/g' -e 's/B/B/g' -e 's/C/C/g' -e 's/D/D/g' -e 's/E/E/g' -e 's/F/F/g' -e 's/G/G/g' -e 's/H/H/g' -e 's/I/I/g' -e 's/J/J/g' -e 's/K/K/g' -e 's/L/L/g' -e 's/M/M/g' -e 's/N/N/g' -e 's/O/O/g' -e 's/P/P/g' -e 's/Q/Q/g' -e 's/R/R/g' -e 's/S/S/g' -e 's/T/T/g' -e 's/U/U/g' -e 's/V/V/g' -e 's/W/W/g' -e 's/X/X/g' -e 's/Y/Y/g' -e 's/Z/Z/g' -e 's/1/1/g' -e 's/2/2/g' -e 's/3/3/g' -e 's/4/4/g' -e 's/5/5/g' -e 's/6/6/g' -e 's/7/7/g' -e 's/8/8/g' -e 's/9/9/g' -e 's/0/0/g' -e 's/,/,/g' -e 's/\./。/g' -e 's/?/?/g' -e 's/\////g' -e 's/:/:/g' -e 's/;/;/g' -e 's/\"/"/g' -e 's/(/︵/g' -e 's/)/︶/g' -e 's/\[/︻/g' -e 's/\]/︼/g' -e 's/{/︷/g' -e 's/}/︸/g' -e 's/!/!/g' -e 's/@/@/g' -e 's/#/#/g' -e 's/%/%/g' -e 's/\^/︿/g' -e 's/\&/&/g' -e 's/\*/*/g' -e 's/-/-/g' -e 's/_/_/g' -e 's/=/=/g' -e 's/+/+/g' -e 's/|/|/g' -e 's/./&'$separator'/g'`
           if [  ! "$content"  ]||[ $pos -ge $tot ];then
                   content="$space""$separator"
         fi
           arr="$arr""$content"
      done
      echo "$arr"
  done
echo
  echo "$sep"
 
  let count=count+1
done|xsel -b -i
}

while true;do
  str0=`xsel -b`
  [ "str0" != "str" ] && str="$str0"
  [ ! "`echo $str0 |grep "$separator"`" ] && format
  sleep 0.5
done
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#12

帖子 xiooli » 2008-07-18 18:52

恩那,所以有引号的就会错位,看看用什么来代替引号吧。
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12

#13

帖子 solcomo » 2008-07-18 19:37

:em26
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#14

帖子 yjcong » 2008-07-18 20:58

____________╱此 ╱以 ╱向 ╱右 ╱也 ╱填 ╱符 ╱___╱
_________╱改 ╱选 ╱右 ╱向 ╱可 ╱充 ╱号 ╱___╱
______╱进 ╱择 ╱看 ╱左 ╱以 ╱空 ╱___╱___╱
___╱版 ╱从 ╱或 ╱看 ╱选 ╱格 ╱___╱___╱
╱可 ╱左 ╱从 ╱; ╱择 ╱的 ╱___╱___╱



╲此 ╲以 ╲向 ╲右 ╲也 ╲填 ╲符 ╲♞♖╲
⚓☣╲改 ╲选 ╲右 ╲向 ╲可 ╲充 ╲号 ╲♞♖╲
⚓⚓☣╲进 ╲择 ╲看 ╲左 ╲以 ╲空 ╲♞♖╲♞♖╲
⚓⚓⚓☣╲版 ╲从 ╲或 ╲看 ╲选 ╲格 ╲♞♖╲♞♖╲
⚓⚓⚓⚓☣╲可 ╲左 ╲从 ╲; ╲择 ╲的 ╲♞♖╲♞♖╲



代码: 全选

#!/bin/bash 

model=right-left
#model=left-right

if [ "$model" = "left-right" ];then
separator="╲"
elif [ "$model" = "right-left" ];then
separator="╱"
else
start-stop-daemon --oknodo -K -q -R 30 -n `echo ${0##*/}`
fi

space="___"
pre="___"

format() {
row=10
col=15
tot=$((`echo "$str" | wc -m`-1))
prod=$(($row*$col+1))
unit=$(($tot/$prod+1))
sep=`for ((i=0;i<($row+$col+5);i++));do echo -n '==';done`

count=0
while [ "$count" -lt "$unit" ];do
   for ((v=1;v<$row+1;v++)) do
       if [ "$model" = "left-right" ];then
           beg=`for ((i=1;i<$v;i++));do echo -n "$pre";done`
       else
           beg=`for ((i=$row;i>$v;i--));do echo -n "$pre";done`
       fi  
      arr="$beg"$separator
      for ((h=1;h<$col+1;h++)) do
           pos=$(($row*$col*$count+($h-1)*$row+v-1))
           content=`echo  ${str:pos:1}| sed -e 's/ / /g' -e 's/"/“/g' -e "s/'/'/g" -e 's/a/a/g' -e 's/b/b/g' -e 's/c/c/g' -e 's/d/d/g' -e 's/e/e/g' -e 's/f/f/g' -e 's/g/g/g' -e 's/h/h/g' -e 's/i/i/g' -e 's/j/j/g' -e 's/k/k/g' -e 's/l/l/g' -e 's/m/m/g' -e 's/n/n/g' -e 's/o/o/g' -e 's/p/p/g' -e 's/q/q/g' -e 's/r/r/g' -e 's/s/s/g' -e 's/t/t/g' -e 's/u/u/g' -e 's/v/v/g' -e 's/w/w/g' -e 's/x/x/g' -e 's/y/y/g' -e 's/z/z/g' -e 's/A/A/g' -e 's/B/B/g' -e 's/C/C/g' -e 's/D/D/g' -e 's/E/E/g' -e 's/F/F/g' -e 's/G/G/g' -e 's/H/H/g' -e 's/I/I/g' -e 's/J/J/g' -e 's/K/K/g' -e 's/L/L/g' -e 's/M/M/g' -e 's/N/N/g' -e 's/O/O/g' -e 's/P/P/g' -e 's/Q/Q/g' -e 's/R/R/g' -e 's/S/S/g' -e 's/T/T/g' -e 's/U/U/g' -e 's/V/V/g' -e 's/W/W/g' -e 's/X/X/g' -e 's/Y/Y/g' -e 's/Z/Z/g' -e 's/1/1/g' -e 's/2/2/g' -e 's/3/3/g' -e 's/4/4/g' -e 's/5/5/g' -e 's/6/6/g' -e 's/7/7/g' -e 's/8/8/g' -e 's/9/9/g' -e 's/0/0/g' -e 's/,/,/g' -e 's/\./。/g' -e 's/?/?/g' -e 's/\////g' -e 's/:/:/g' -e 's/;/;/g' -e 's/\"/“/g' -e 's/(/︵/g' -e 's/)/︶/g' -e 's/\[/︻/g' -e 's/\]/︼/g' -e 's/{/︷/g' -e 's/}/︸/g' -e 's/!/!/g' -e 's/@/@/g' -e 's/#/#/g' -e 's/%/%/g' -e 's/\^/︿/g' -e 's/\&/&/g' -e 's/\*/*/g' -e 's/-/-/g' -e 's/_/_/g' -e 's/=/=/g' -e 's/+/+/g' -e 's/|/|/g' -e 's/./& '$separator'/g'`
     
        if [ "$content" = "$separator" ]||[ $pos -ge $tot ]||[ ! "$content" ];then
                   content="$space""$separator"
         fi
           arr="$arr""$content"
      done
      echo "$arr"
  done
echo
  echo "$sep"
 
  let count=count+1
done|xsel -b -i
}

while true;do
  str0=`xsel -b`
  [ "str0" != "str" ] && str="$str0"
  [ ! "`echo $str0 |grep "$separator"`" ] && format
  sleep 0.5
done
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#15

帖子 xiooli » 2008-07-19 8:41

:D
回复