搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
zglcx123
帖子: 110
注册时间: 2007-08-20 16:34
来自: Earth

搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#1

帖子 zglcx123 » 2009-08-08 11:32

搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!
----------------------------------------------------------------------------------
cat abc.dat
京FZ1560 安勇

京HX6070 常莹

京L28280 陈卫进

京FV9020 陈跃

cat abc.dat | sed 's/\(京[A-Z]*[0-9]*\)\(.*\)/\2 \1/g'
安勇
京FZ1560
常莹
京HX6070
陈卫进
京L28280
陈跃
京FV9020

-------------------------------------
如何去掉名字后面的空格呀?我想变成下面这样的形式
安勇 京FZ1560
常莹 京HX6070
上次由 zglcx123 在 2009-08-08 15:21,总共编辑 4 次。
Dropbox!点我注册,你的起点高了500M,我也能多得到500M,共赢!
--------
HP V3808TU (2008.03.08---2012.10.08)
ASUS N56VZ (2012.10.08---未来)
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#2

帖子 oneleaf » 2009-08-08 11:52

用python写吧,这个比较简单些。
头像
zglcx123
帖子: 110
注册时间: 2007-08-20 16:34
来自: Earth

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#3

帖子 zglcx123 » 2009-08-08 11:55

不是我想用什么写就可以用什么写,否则我用C++写,几下就出来了

规定用shell,没办法呀
Dropbox!点我注册,你的起点高了500M,我也能多得到500M,共赢!
--------
HP V3808TU (2008.03.08---2012.10.08)
ASUS N56VZ (2012.10.08---未来)
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#4

帖子 cnkilior » 2009-08-08 14:38

dos2unix
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#5

帖子 c\nc » 2009-08-08 16:53

awk '{print $2,$1}' abc.dat
这样符合不?
头像
cheaper
帖子: 198
注册时间: 2006-01-06 17:26

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#6

帖子 cheaper » 2009-08-08 16:59

c\nc 写了:awk '{print $2,$1}' abc.dat
这样符合不?
Good idea.
头像
jioyo源
帖子: 3476
注册时间: 2008-10-08 13:48

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#7

帖子 jioyo源 » 2009-08-08 17:08

:em04 这样的问题 居然用sed,awk在这方面还是很方便的……
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
头像
zglcx123
帖子: 110
注册时间: 2007-08-20 16:34
来自: Earth

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#8

帖子 zglcx123 » 2009-08-08 19:02

我自己搞定了,,,由于我这个是windows 下txt文件,,回车符不一样

用:
sed 's/^M/ /g' 去掉了每行后面的回车符,,就可以了
Dropbox!点我注册,你的起点高了500M,我也能多得到500M,共赢!
--------
HP V3808TU (2008.03.08---2012.10.08)
ASUS N56VZ (2012.10.08---未来)
头像
zglcx123
帖子: 110
注册时间: 2007-08-20 16:34
来自: Earth

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#9

帖子 zglcx123 » 2009-08-08 19:05

c\nc 写了:awk '{print $2,$1}' abc.dat
这样符合不?
这样的确是正确地!
但假如分隔符是些不可见的字符,,那就难办了,我这个其实就是这种情况,,
要处理的文件是windows下的txt文档,包含很多不可见字符,,所以我觉得这样就不行了
Dropbox!点我注册,你的起点高了500M,我也能多得到500M,共赢!
--------
HP V3808TU (2008.03.08---2012.10.08)
ASUS N56VZ (2012.10.08---未来)
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 搞了一个晚上加一个早上,实在是没办法了,我上论坛来求助吧!!!!

#10

帖子 c\nc » 2009-08-09 20:39

zglcx123 写了:
c\nc 写了:awk '{print $2,$1}' abc.dat
这样符合不?
这样的确是正确地!
但假如分隔符是些不可见的字符,,那就难办了,我这个其实就是这种情况,,
要处理的文件是windows下的txt文档,包含很多不可见字符,,所以我觉得这样就不行了
请参考 awk 的手册,-F 参数是设置分割符,这个分割符可以是正则表达式的,当然可以包含不可见字符。
回复