当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 64 篇帖子 ]  前往页数 1, 2, 3, 4, 5  下一页
作者 内容
1 楼 
 文章标题 : [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 10:28 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
引用:
#CONTACT
ID=454
NAME=Fred Weinhaus
CREATED=1251770526
MAIL=fmw@alink.net
ICON=Contact0

#CONTACT
ID=455
NAME=binsos@googlegroups.com
CREATED=1253364946
MAIL=binsos@googlegroups.com
DESCRIPTION=
SHORT NAME=
PHONE=1xxxxx999901
ICON=Contact0


取name phone同时有效的,组成行。
引用:
binsos@googlegroups.com,1xxxxx999901


_________________
● 鸣学


页首
 用户资料  
 
2 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 10:41 
头像

注册: 2008-11-21 20:26
帖子: 36913
送出感谢: 1
接收感谢: 36
纯帮顶


_________________
讨厌我的人可以试着点一下
浏览全部ubuntu技巧


页首
 用户资料  
 
3 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 11:38 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
代码:
awk -F[=] 'BEGIN{i=0}$1=="#CONTACT"{i++}$1=="NAME"{n[i]=$2}$1=="PHONE"{p[i]=$2}END{for(i in n){if (n[i] && p[i]) printf "%s, %s\n",n[i],p[i]}}' data.txt


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
4 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 11:40 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
同理,用 perl 也可以模拟出一个,


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
5 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 11:59 
头像

注册: 2007-08-05 17:40
帖子: 4968
送出感谢: 0 次
接收感谢: 4
代码:
#!/bin/sh

#ALL Variables
cleaner(){
     ID=
     NAME=
    .
    .
    .   #需要补全,我偷个懒好吧!
}
writer(){
echo ${NAME},$PHONE >>whereyouneed
}
while read LINE;do
    case "$LINE" in
         "")
             continue
             ;;
          \#CONTACT)
                writer
                cleaner
                ;;
            *)
                 eval $LINE
                 ;;
        esac
done

#remove the head.
sed -i '^,$/d' whereyouneed


_________________
free VPN
YouKuDownLoader
代码:
pip3 install ykdl

install YouKuDownLoader, have fun in downloading.
YouKuDownLoader所支持网站列表


最后由 cnkilior 编辑于 2009-09-23 12:40,总共编辑了 2 次

页首
 用户资料  
 
6 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 12:00 
头像

注册: 2007-08-05 17:40
帖子: 4968
送出感谢: 0 次
接收感谢: 4
当然也可以不要最后一句话,可以在write函数中判断一下是不是有变量是空就可以了。这样应该更好些!


_________________
free VPN
YouKuDownLoader
代码:
pip3 install ykdl

install YouKuDownLoader, have fun in downloading.
YouKuDownLoader所支持网站列表


页首
 用户资料  
 
7 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 12:13 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
3楼无输出。5楼死机。呵呵


_________________
● 鸣学


页首
 用户资料  
 
8 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 12:27 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
代码:
#!/bin/python
import re
r=r'ID.*?ICON'
d=open("a.txt").read()
g=re.findall(r,d,re.S)
for a in g:
    r=r'MAIL=(.*?)\n.*?PHONE=(.*?)\n'
    x=re.search(r,a,re.S)
    if x : print "%s,%s"%(x.group(1),x.group(2))


页首
 用户资料  
 
9 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 12:33 
头像

注册: 2007-08-05 17:40
帖子: 4968
送出感谢: 0 次
接收感谢: 4
eexpress 写道:
3楼无输出。5楼死机。呵呵

一个小小的脚本还会死机?

开什么玩笑了。

sh a.sh yourfile

你不会是没有补全cleaner里面的...吧,我偷懒写个函数,你运行的时候就要去补全啊!

我没有试过。死不死机我不知道,看这个XXX=yyy的架势就知道用eval。

也可能是write这个函数和一个命令重名了。没有考虑到这个问题。


_________________
free VPN
YouKuDownLoader
代码:
pip3 install ykdl

install YouKuDownLoader, have fun in downloading.
YouKuDownLoader所支持网站列表


最后由 cnkilior 编辑于 2009-09-23 12:39,总共编辑了 4 次

页首
 用户资料  
 
10 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 12:33 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
eexpress 写道:
3楼无输出。5楼死机。呵呵

为什么、?我试过的啊


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
11 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 12:36 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
ee人品问题


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
12 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 12:51 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
代码:
awk -F= '$1=="ID"{if(N&&P)print N","P;N="";P=""}$1=="NAME"{N=$2}$1=="PHONE"{P=$2}END{if(N&&P)print N","P;}' txt


_________________
关注我的blog: ε==3


页首
 用户资料  
 
13 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 13:03 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
8楼的,没判断2个都有效而已。至少可执行输出。而且是NAME 和 PHONE。这到无所谓。


引用:
5楼死机
傻了吧。是说无输出,不结束。呵呵

12楼继续无输出。

ptw: 为什么大家都不用ARGV $1 这些的哦。


_________________
● 鸣学


页首
 用户资料  
 
14 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 13:14 
头像

注册: 2009-04-11 23:46
帖子: 4029
系统: Arch Linux
送出感谢: 11
接收感谢: 110
代码:
#!/usr/bin/env python3
# fileencoding=utf-8

name = phone = None
with open('data.txt') as f:
  for i in f:
    if i.find('#CONTACT') != -1:
      another = True
      name = phone = None
    if i.startswith('NAME'):
      name = i[5:-1]
    if i.startswith('PHONE'):
      phone = i[6:-1]
    if another and name and phone:
      print(name, phone, sep=',')
      another = False



_________________
我的博客 http://blog.lilydjwg.me/
Dropbox,你值得拥有。
提问的智慧
Arch Linux 中文论坛

我的vimrc: http://git.io/vimrc


页首
 用户资料  
 
15 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-09-23 13:17 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
eexpress 写道:
8楼的,没判断2个都有效而已。至少可执行输出。而且是NAME 和 PHONE。这到无所谓。
ptw: 为什么大家都不用ARGV $1 这些的哦。

有判断啊,使用正则表达式匹配,如果两个都同时匹配就输出。搞参数也容易,麻烦嘛反正临时用用。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 64 篇帖子 ]  前往页数 1, 2, 3, 4, 5  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译