LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 03-07-16, 22:12 第 1 帖
Glue
 
Glue 的头像
 
 
注册会员  
  注册日期: Dec 2002
  我的住址: 新加坡
  帖子: 3,129
  精华: 3
 

标题: 拿到一个好的五笔98码表


要把格式从这样,
...
aaaa 恭恭敬敬 藏匿 工
...
转成这样,
...
aaaa 恭恭敬敬
aaaa 藏匿
aaaa 工
...

才能在fcitx中使用。 

第一步,用
cat wbcz98.mb | awk '{print NF}' | sort -un
找出一个编码最多对应14个词。

下一步,用
cat wbcz98.mb | awk '{print $1 " " $2;
if (NF>2) {print $1 " " $3};
if (NF>3) {print $1 " " $4};
if (NF>4) {print $1 " " $5};
if (NF>5) {print $1 " " $6};
if (NF>6) {print $1 " " $7};
if (NF>7) {print $1 " " $8};
if (NF>8) {print $1 " " $9};
if (NF>9) {print $1 " " $10};
if (NF>10) {print $1 " " $11};
if (NF>11) {print $1 " " $12};
if (NF>12) {print $1 " " $13};
if (NF>13) {print $1 " " $14};
if (NF>14) {print $1 " " $15}
}' > wbx.mb

拷去/usr/share/fcitx,重启fcitx就好了。

哪位兄弟有更好的办法做这事?
  Glue 当前离线   回复时引用此帖
旧 03-07-16, 23:38 第 2 帖
lucida
 
 
 
注册会员  
  注册日期: Oct 2002
  我的住址: .:DRL:.
  帖子: 2,492
  精华: 9
 

cat wbcz98.mb | awk '{for(i=2;i<=NF;i++) {print $1" "$i}}' > wbx.mb







__________________
E6300@3.2G/P5B-D WiFi/2G RAM/1TB HDD/3540A/7900GT/E-MU 0404
Logitech S 510/MX Revolution/2407WFP/LaserJet 1020
go wild, go Gentoo
  lucida 当前离线   回复时引用此帖
旧 03-07-16, 23:51 第 3 帖
dreamrise 帅哥
 
dreamrise 的头像
 
 
注册会员  
  注册日期: Nov 2002
  帖子: 396
  精华: 8
 

标题: penny比我快哦


cat wbcx.mb | awk '{
for (i=2;i<=NF;i++) {print $1 " " $i;}
}' > wbx.mb

在cygwin下调试的,代码居然一摸一样。
  dreamrise 当前离线   回复时引用此帖
旧 03-07-16, 23:53 第 4 帖
dreamrise 帅哥
 
dreamrise 的头像
 
 
注册会员  
  注册日期: Nov 2002
  帖子: 396
  精华: 8
 

感觉awk真不错,容易记,因为语法和c居然一模一样。其实我很少用awk,但是会c就可以了。
  dreamrise 当前离线   回复时引用此帖
旧 03-07-17, 00:05 第 5 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

流汗ing....佩服!!!
  KornLee 当前离线   回复时引用此帖
旧 03-07-17, 23:38 第 6 帖
cx6445
 
 
 
注册会员  
  注册日期: Feb 2003
  帖子: 414
  精华: 0
 

i<NF,NF是什么意思?
  cx6445 当前离线   回复时引用此帖
旧 03-07-17, 23:54 第 7 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

NF是AWK中一个内制变量,表示当前记录里域的个数
附录:AWK内制变量说明
代码:
变量名 含义 ARGC 命令行参数的个数 ARGV 命令行参数数组 FINENAME 当前输入的文件名 FNR 当前文件里的记录号 FS 输入域分隔符,默认的是一个空格 NF 当前记录里的域的个数 NR 到目前为止的记录数 OFMT 数值输出格式 OFS 输出域分隔符 ORS 输出记录分隔符 RLENGTH 由MATCH函数匹配的字符串的长度 RS 输入记录分隔符 RSTART 由MATCH函数匹配的串偏移量 SUBSEP 下标分隔符

此帖于 03-07-18 00:02 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-07-17, 23:57 第 8 帖
cx6445
 
 
 
注册会员  
  注册日期: Feb 2003
  帖子: 414
  精华: 0
 

javelee版主真是及时呀!
偶明白了,谢谢!
  cx6445 当前离线   回复时引用此帖
旧 03-07-23, 09:28 第 9 帖
Glue
 
Glue 的头像
 
 
注册会员  
  注册日期: Dec 2002
  我的住址: 新加坡
  帖子: 3,129
  精华: 3
 

标题: 如果问题反过来呢?


果然都是高手
如果我是要把wbx.mb转成wbcz98.mb,那就有点儿难度了吧!
我看了一下man awk,没明白怎样把连续几行的print到一行上去。







__________________
又回来了
  Glue 当前离线   回复时引用此帖
旧 03-07-23, 10:39 第 10 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

用数组,把五笔编码作为数组的索引







__________________
我是 xyb 的马甲,呵呵

...."Have you mooed today?"...
  idkey 当前离线   回复时引用此帖
旧 03-07-24, 22:49 第 11 帖
Glue
 
Glue 的头像
 
 
注册会员  
  注册日期: Dec 2002
  我的住址: 新加坡
  帖子: 3,129
  精华: 3
 

看来没有人愿意试一试。
还是不可以? 
  Glue 当前离线   回复时引用此帖
旧 03-07-30, 14:17 第 12 帖
Glue
 
Glue 的头像
 
 
注册会员  
  注册日期: Dec 2002
  我的住址: 新加坡
  帖子: 3,129
  精华: 3
 

标题: awk 一例


还是自己看比较好,仔细看了一下关于数组和打印的,解决了我自己提出的问题。

http://www.linuxsir.com/bbs/showthre...threadid=52445

awk 'BEGIN {ORS=" "; a="a"; n=0}; {if (a==$1) {n+=1;v[n]=$2} else {print "\n" a; for(i=1;i<=n;i++) print v[i]; a=$1; n=1; delete v; v[1]=$2}}; END {print "\n" a; for(i=1;i<=n;i++) print v[i]}' wbx.mb > wb98.mb
  Glue 当前离线   回复时引用此帖
旧 03-07-30, 15:00 第 13 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

强!!!
AWK是UNIX/LINUX平台上一门独立的编程语言,尤其是对于报表的处理功能更不是别的实用程序可比拟的!其实我们在编写shell的时候只不过用了他非常非常少的功能!太多的实用功能有待发掘呢!
  KornLee 当前离线   回复时引用此帖
旧 03-07-31, 22:49 第 14 帖
Glue
 
Glue 的头像
 
 
注册会员  
  注册日期: Dec 2002
  我的住址: 新加坡
  帖子: 3,129
  精华: 3
 

标题: 头一回成精,谢谢版主


边学边用,见笑了
  Glue 当前离线   回复时引用此帖
旧 03-08-01, 09:46 第 15 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

就是嘛,大家都是边学边用,特别是遇到工作中的实际问题需要解决的时候,是最好的实践的机会,最好自己亲自动手,肯定会有所受益的。

btw,今天网上订的《sed & awk》第二版已经拿到手,在加上手头上 palm 里的英文版,可以好好学习了。
  idkey 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 13:13


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org