当前时区为 UTC + 8 小时



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

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
其实我早发过了。就那opera通讯录拨号的帖子。

效果嘛。有opera的,试试就知道了。


_________________
● 鸣学


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

注册: 2009-09-24 9:34
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
cnkilior 写道:
代码:
#!/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



不错


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

注册: 2008-10-15 10:49
帖子: 583
地址: CS
送出感谢: 0 次
接收感谢: 0 次
lilydjwg 写道:
代码:
#!/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



学习了


_________________
代码:
 _____________
< 呜呜buntu >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||


页首
 用户资料  
 
49 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-10-01 15:50 
头像

注册: 2007-05-26 20:57
帖子: 113
送出感谢: 0 次
接收感谢: 0 次
代码:
cat $1 |             # $1 输入文件
  awk 'BEGIN { RS = "#CONTACT"; FS = "\n"; OFS = ":" } {$1 = $1; print }' |
    sed -n -e 's/:.*:NAME=\([^/@:]*\):.*:PHONE=\(1[0-9]\{10\}\):.*/\1 : \2/p'


我也发一个练练手 :em02


页首
 用户资料  
 
50 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-11-04 19:28 
头像

注册: 2009-02-28 20:55
帖子: 21
系统: Debian
送出感谢: 1
接收感谢: 0 次
我用C写了一个:
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
        FILE *input_file;
        input_file = fopen("input.txt", "rt");
        if (input_file == NULL) {
                printf("input.txt文件不存在!");
                return 1;
        }

        int string_length_limit;
        printf("请输入每一行字符个数的上限:");
        scanf("%d", &string_length_limit);
        string_length_limit++;

        char person_tag[] = "#CONTACT";
        char name_tag[] = "NAME=";
        char phone_tag[] = "PHONE=";
        char one_line[string_length_limit];
        char name[string_length_limit];
        char phone[string_length_limit];
        int is_phone_effective = 0, is_name_effective = 0;

        while (fgets(one_line, string_length_limit, input_file) != NULL) {
                if (strcmp(person_tag, one_line) == 0) {
                        if (is_phone_effective == 1 && is_name_effective == 1) {
                                printf("%s,%s\n", name, phone);
                        }
                        is_name_effective = 0, is_phone_effective = 0;
                } else if (strncmp(name_tag, one_line, 5) == 0) {
                        is_name_effective = 1;
                        strcpy(name, one_line + 5);
                        name[strlen(name) - 1] = '\0';
                } else if (strncmp(phone_tag, one_line, 6) == 0) {
                        is_phone_effective = 1;
                        strcpy(phone, one_line + 6);
                        phone[strlen(phone) - 1] = '\0';
                }
        }
        if (is_phone_effective == 1 && is_name_effective == 1) {
                printf("%s,%s\n", name, phone);
        }

        fclose(input_file);
        return 0;
}


页首
 用户资料  
 
51 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-11-24 12:00 

注册: 2009-11-23 22:47
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
那我来java好了 C++的就省略了 前面有C的了
脚本语言不会 好想学 很好很强大
代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class Case {

   public static void main(String[] args) {
      System.out.println(System.getProperty("user.dir"));
      String rfilename = System.getProperty("user.dir") + "/import.txt";
      String wfilename = System.getProperty("user.dir") + "/output.txt";
      File rfile = new File(rfilename);
      File wfile = new File(wfilename);
      if (!rfile.exists()) {
         System.err.println("Can't Find " + rfilename);
         return;
      }
      BufferedReader br;
      BufferedWriter bw;
      String linestr, mail = "", phone = "";
      String[] splitstr;
      try {
         br = new BufferedReader(new FileReader(rfile));
         bw = new BufferedWriter(new FileWriter(wfile, false));
         linestr = br.readLine();
         while (linestr != null) {
            if (linestr.equals("#CONTACT")) {
               mail = "";
               phone = "";
            }
            splitstr = linestr.split("=");
            if (splitstr[0].equals("MAIL"))
               mail = splitstr[1];
            if (splitstr[0].equals("PHONE"))
               phone = splitstr[1];
            if (!mail.equals("") && !phone.equals("")) {
               System.out.println(mail + "," + phone);
               bw.append(mail + "," + phone);
               bw.newLine();
               bw.flush();
               mail = "";
               phone = "";
            }
            linestr = br.readLine();
         }
         bw.close();
         br.close();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

}


页首
 用户资料  
 
52 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2009-12-02 16:59 

注册: 2008-11-22 19:28
帖子: 26
送出感谢: 1
接收感谢: 0 次
代码:
#/usr/bin/python

data = open("task01-data.txt",'r')
name=''
phone=''
for lines in data.readlines():
    if 'NAME' in lines and 'SHORT' not in lines:
        name=lines.split('=')[1].strip()
    if 'PHONE' in lines:
        phone=lines.split('=')[1]
        if name!='' and phone!='':
            print "%s:%s"%(name,phone)
        name=''
        phone=''


_________________
Full Circle中文杂志 |Ubuntu社区独立发行的电子月刊
http://sites.google.com/site/fullcirclezh/


页首
 用户资料  
 
53 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2010-01-07 18:05 

注册: 2009-11-17 19:37
帖子: 6
送出感谢: 0 次
接收感谢: 1
代码:
awk 'BEGIN {RS="\n\n"}/\nNAME.*PHONE/' filename


页首
 用户资料  
 
54 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2010-06-30 15:46 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
eexpress 写道:
多谢各位研究。

残局结束了。谢谢各位让我知道,我选择了最正确的perl。

4行有效代码。

代码:
● cat t.pl
#!/usr/bin/perl

while(<>){
chomp;
$name=$',next if /NAME=/;
print $name.",".$'."\n" if /PHONE=/ && $';
}


:em11


(忍不住了,挖一个坟,哈哈)
代码是可能出错误的。
代码:
[tlcr: 0] [五月十九日 15:08:08] [tusooa@tusooa-laptop] [~]
>> cat > /tmp/testfile << 'EOF'
#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

heredoc> #CONTACT
heredoc> ID=x
heredoc> NAME=y
heredoc>
heredoc> #CONTACT
heredoc> ID=x
heredoc> PHONE=z
heredoc> EOF
[tlcr: 0] [五月十九日 15:09:10] [tusooa@tusooa-laptop] [~]
>> perl /tmp/perl-test /tmp/testfile
,1xxxxx999901
y,z

上面的NAME和下面的PHONE居然对应了。

现在爽了,4行:
代码:
[tlcr: 0] [五月十九日 17:32:52] [tusooa@tusooa-laptop] [~]
>> cat 应用/脚本/GetValue
#!/usr/bin/env perl

use 5.010;

while(chomp($_ = <>))
{
    if (/^(#CONTACT)$/) { say "$NAME,$PHONE" if $NAME and $PHONE; undef $NAME; undef $PHONE;}
    for $a qw(NAME PHONE) { ${$a} = $' if /^$a=/; }
}
say "$NAME,$PHONE" if $NAME and $PHONE;


_________________
代码:
] ls -ld //


页首
 用户资料  
 
55 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2010-12-21 13:35 
头像

注册: 2009-05-03 21:09
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
最近在学脚本,来论坛找任务做一下,我的脚本,写的比较烂,高手莫笑
代码:
test.awk
BEGIN{RS="#";FS="\n";ORS="\n"}
{for (i=1;i<=NF;i++){if ($i ~ /^NAME/){printf("%s",substr($i,6))};if ($i ~/^PHONE/){printf(",%s",substr($i,7))}};printf("\n")}
nawk -f test.awk file | nawk '/,/{print}'


_________________
GONE WITH THE WIND ~~~


页首
 用户资料  
 
56 楼 
 文章标题 : Re: ★★格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2011-01-20 5:57 

注册: 2010-12-23 10:23
帖子: 120
送出感谢: 0 次
接收感谢: 4
roylez 写道:
死臭屁,烂大括号恶心的。

代码:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
for l in open(sys.argv[1]).readlines():
    if l.strip().startswith('NAME'): name = l.strip().split('=')[1]
    if l.strip().startswith('PHONE'):   print l.strip().split('=')[1] +','+name


最近在学python, 这个好懂哈~ 原来string 还有 startwith() 这种method 啊


页首
 用户资料  
 
57 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2011-01-20 10:34 
头像

注册: 2010-10-09 23:01
帖子: 7210
送出感谢: 8
接收感谢: 23
51楼前面所有的import应该可以换成一句``import java.io.*;''的吧…… :em06


_________________
GitHub博客——稍微改了一下版面(于2012/8/23
新浪微博——话痨
新浪博客——伪技术博客
GitHub主页——充斥眼球的Common Lisp


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

注册: 2009-04-11 23:46
帖子: 4141
系统: Arch Linux
送出感谢: 11
接收感谢: 125
pengqian 写道:
最近在学python, 这个好懂哈~ 原来string 还有 startwith() 这种method 啊


你英文没学好啊,是 startswith()


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

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


页首
 用户资料  
 
59 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2011-01-20 17:01 
头像

注册: 2010-10-09 23:01
帖子: 7210
送出感谢: 8
接收感谢: 23
最近在学Perl和Java,不过Java学得不怎么样,虽然说Perl也学得不怎么样,不过还是来献一下丑,献上这里最长的Perl代码 :em06
[perl]
#! /usr/bin/perl -w
while (<>) {
if (/^(NAME|PHONE)=/) {
chomp($_);
push(@list, $_);
}
}
for ($i = 0; $i < @list; $i++) {
if ($list[$i] =~ /^NAME/) {
@name = split(/=/, $list[$i]);
if ($list[$i + 1] =~ /^PHONE/) {
@phone = split(/=/, $list[$i + 1]);
if (defined($phone[1])) {
print("$name[1], $phone[1]\n");
}
}
}
}
[/perl]
各位别笑话我哦~ :em03
经过本人测试,绝对可用,并且不会将两个不同的联系人的NAME项和PHONE项混在一起…… :em02


_________________
GitHub博客——稍微改了一下版面(于2012/8/23
新浪微博——话痨
新浪博客——伪技术博客
GitHub主页——充斥眼球的Common Lisp


页首
 用户资料  
 
60 楼 
 文章标题 : Re: [二星]格式化输出,欢迎各种脚本或者语言
帖子发表于 : 2011-01-21 7:01 
头像

注册: 2010-05-24 12:16
帖子: 1015
送出感谢: 0 次
接收感谢: 0 次
膜拜各种高手,新人还在学习中...


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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