[求助]如何实现这么个功能

[求助]如何实现这么个功能

将C4   in1   in2  out1
   u5   in1   in2   out2
   ......
改成X1   in1   in2   ou1
      X2   in1   in2   ou2
      .......

有很多语句,就是改变第一个字符串,变成从X1,X2,X3顺序的。知道的大大告诉下 谢谢


你跟那个谁谁不会是同学吧,怎么问题都差不多
这个应该不难实现吧
1. 提取第一字段
2. 循环行数次,把第一字段替换成你要的X(1-N)就行了
(用awk比较快可以实现)
确实不难
试试这个吧
#! /usr/bin/perl -w

while (<>) {
$x = "x1";
s/^\S+\b/$x/ge;
print;
$x++;
}
这么多年了,才知道perl里面字符串还可以++ -_-!

$a="z2" 可以++;
$a="z2z3" 不可以++, 为什么呢?

perlop:

The auto-increment operator has a little extra builtin magic to it. If you increment a variable that is numeric, or that has ever been used in a numeric context, you get a normal increment. If, however, the variable has been used in only string contexts since it was set, and has a value that is not the empty string and matches the pattern /^[a-zA-Z]*[0-9]*\z/ , the increment is done as a string, preserving each character within its range, with carry:

    print ++($foo = '99');        # prints '100'
    print ++($foo = 'a0');        # prints 'a1'
    print ++($foo = 'Az');        # prints 'Ba'
    print ++($foo = 'zz');        # prints 'aaa'

惭愧啊,perl也用了几年了,第一次知道这个


QUOTE:
原帖由 dajun 于 2008-5-18 16:08 发表
这么多年了,才知道perl里面字符串还可以++ -_-!

$a="z2" 可以++;
$a="z2z3" 不可以++, 为什么呢?

第二种情况属于数字在字母之间的情况,在这种情况下$a++被当作$a+1,因而其结果是1
还有一种情况会出现这种问题,就是$a含有非字母数字字符。
ps 刚想起我上面的代码没有考虑x10及以后的情况,上面的代码需再改一下,不过也不太复杂,^_^