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

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


发表新主题 回复
 
主题工具
旧 03-08-12, 11:52 第 1 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 出道题考考你?


文件:
工a
式aa
工aaaa
工期aaad
工艺aaan
如何转化成:
a 工
aa 式
aaaa 工
aaad 工期
aaan 工艺
  KornLee 当前离线   回复时引用此帖
旧 03-08-12, 11:53 第 2 帖
windrose
 
windrose 的头像
 
 
★☆★督导☆★☆  
  注册日期: Oct 2002
  帖子: 6,296
  精华: 38
 

呵呵,想骗来一个转换输入法码表的脚本?







__________________
Free as in freedom, slack as in Slackware.
欢迎访问 http://slack.linuxsir.org
个人blog:http://blog.tuxfans.com/
RSS:http://feeds.feedburner.com/windroseblog
  windrose 当前离线   回复时引用此帖
旧 03-08-12, 12:00 第 3 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 windrose 发表
呵呵,想骗来一个转换输入法码表的脚本?
windrose!该打PP
出个小测验来活跃一下气氛罢啦~~,我又不研究什么输入法!(我费了半小时才琢磨出来呢:()

此帖于 03-08-12 12:03 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-08-12, 22:40 第 4 帖
lucida
 
 
 
注册会员  
  注册日期: Oct 2002
  我的住址: .:DRL:.
  帖子: 2,492
  精华: 9
 

就是前后反转么?用sed就行吧

随便说说,现在在windows下面







__________________
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-08-13, 00:33 第 5 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

$ cat a
工a
式aa
工aaaa
工期aaad
工艺aaan
$ cat a | sed -e 's/\([a-z]*$\)/ &/' -e 's/\([^ ]*\) \([a-z]*\)/\2 \1/'
a 工
aa 式
aaaa 工
aaad 工期
aaan 工艺







__________________
我是 xyb 的马甲,呵呵

...."Have you mooed today?"...
  idkey 当前离线   回复时引用此帖
旧 03-08-13, 00:48 第 6 帖
angelp_9312
 
 
 
注册会员  
  注册日期: Jul 2003
  帖子: 160
  精华: 0
 

晕~~~~~~~~~

那么一长条真是不知道写的什么玩意,唉,难
  angelp_9312 当前离线   回复时引用此帖
旧 03-08-13, 01:16 第 7 帖
lyn
 
lyn 的头像
 
 
注册会员  
  注册日期: Jul 2003
  帖子: 15
  精华: 1
 

能详细解释这条命令吗

$ cat a | sed -e 's/\([a-z]*$\)/ &/' -e 's/\([^ ]*\) \([a-z]*\)/\2 \1/'
  lyn 当前离线   回复时引用此帖
旧 03-08-13, 01:48 第 8 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 idkey 发表
$ cat a
工a
式aa
工aaaa
工期aaad
工艺aaan
$ cat a | sed -e 's/\([a-z]*$\)/ &/' -e 's/\([^ ]*\) \([a-z]*\)/\2 \1/'
a 工
aa 式
aaaa 工
aaad 工期
aaan 工艺
太厉害!:(
我的是这样的,望指教
代码:
cat myfile|sed 's/[a-z]*[a-z]/ &/g'|awk '{print $2,$1}'
  KornLee 当前离线   回复时引用此帖
旧 03-08-13, 01:59 第 9 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

呵呵,所见略同
  idkey 当前离线   回复时引用此帖
旧 03-08-13, 02:04 第 10 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 idkey 发表
呵呵,所见略同

不过idkey兄的更"牛"些!PF~~~
  KornLee 当前离线   回复时引用此帖
旧 03-08-13, 02:11 第 11 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

sed -e 's/\([a-z]*$\)/ &/' -e 's/\([^ ]*\) \([a-z]*\)/\2 \1/'

这里有两个转换步骤:
1. 转成中间用空格分隔的形式
本想直接匹配汉字和英文字符,再反转;试了试,不太好使,就曲折了一下。[a-z]*$ 匹配每行最后的所有英文字符,加上了引号表示把它作为一个“引用”来使用,这样,后面就可以用 & 来直接引述它了。
所以,'s/\([a-z]*$\)/ &/' 就是用空格+匹配到的字符来代替原来的“位于每行行尾的所有小写英文字符”。
2. 根据中间的空格做标志,把它前后的字符串位置对调
\([^ ]*\) 是匹配空格前面的所有字符,\([a-z]*\) 则匹配空格后面的小写英文字符。这里都用括号括了起来,这样后面就可以分别用 \1 和 \2 来引用他们的。把它们替换成 \2 \1 的形式自然就是对调了空格前后的字符。
  idkey 当前离线   回复时引用此帖
旧 03-08-13, 09:54 第 12 帖
lordbyorn
 
lordbyorn 的头像
 
 
临时退役版主  
  注册日期: May 2003
  帖子: 889
  精华: 1
 

sed 's/[a-z]*$/ &/' test | gawk "{print \$2 \" \" \$1}"







__________________
Kurt is me.
Studing hard. Making my way to the top of the world.
  lordbyorn 当前离线   回复时引用此帖
旧 03-08-13, 17:36 第 13 帖
lordbyorn
 
lordbyorn 的头像
 
 
临时退役版主  
  注册日期: May 2003
  帖子: 889
  精华: 1
 

to idkey:
This is what you want:

sed 's/\([^[:alpha:]]*\)\([a-z]*$\)/\2 \1/' test

此帖于 03-08-13 17:39 被 lordbyorn 编辑.
  lordbyorn 当前离线   回复时引用此帖
旧 03-08-14, 10:42 第 14 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

怪了,试过 :alpha: 之后,又试了试 ^a-z,也挺好使的。但我记得那天试过这条命令呀:
sed 's/\([^a-z]*\)\([a-z]*$\)/\2 \1/'
看来那天肯定什么地方搞错了,闹了个笑话,呵呵
  idkey 当前离线   回复时引用此帖
旧 03-08-14, 12:24 第 15 帖
lordbyorn
 
lordbyorn 的头像
 
 
临时退役版主  
  注册日期: May 2003
  帖子: 889
  精华: 1
 

Why $ is necessary? I am wondering.
  lordbyorn 当前离线   回复时引用此帖
发表新主题 回复


主题工具

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

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


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


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