+ -
当前位置:首页 → 问答吧 → 我的帖子为什么被删除了?

我的帖子为什么被删除了?

时间:2011-07-15

来源:互联网

下午发的个帖子为什么被删除了?

作者: tcclab   发布时间: 2011-07-15

我也不清楚为什么被删除了,也没有记录谁删的,给你恢复

作者: zhlong8   发布时间: 2011-07-15

恢复不了,我去给你反馈下

作者: zhlong8   发布时间: 2011-07-15

那我白白写了半个小时的问题就没有了?

作者: tcclab   发布时间: 2011-07-15

抱歉你再发下,我去问下怎么回事,这是原文



QUOTE:
我有一个文件test, 内容如下:
====
$title
MCO,Onh
$symmetry c1
$coord    file=coord   data
$scfintunit
unit=30       size=0       file=twoint
$scfiterlimit   300
$forceapprox    file=forceapprox  fdsal
$interconversion  off
   qconv=1.d-10
   maxiter=25
$coordinateupdate
....
====

想把这里面的某行下面添加一会注释以及file=xxx 字符串后面添加一个后缀, 比如'.dat'

我写了个脚本superadd.pl 如下:

#!/usr/bin/perl
$^I=".bak";
#$supperadd = 'file'
while (<>){
if(/\$coord  /){

$_ .= "\$kollman\n";
}
if (/file=/){
$_ .= ".dat";

}

print;
}


但是,'.dat' 后缀总是添加在下一行.

尝试用
s/file=coord/file=coord.dat/;
s/file=twoint/file=twoint.dat/;
方式解决,但无奈这个记事本中的file=太多, 也不固定(有的文件中有30项,有的有40项,名称也不一样).

那位高手我用什么方式在后面追加后缀?

另外, 我想通过命令行方式把要添加的后缀加上, 比如:
perl superadd.pl <.dat> test
的方式输入后, 自动把test文件里面的内容修改为:
====
$title
MCO,Onh
$symmetry c1
$coord    file=coord.dat   data
$scfintunit
unit=30       size=0        file=twoint.dat
$scfiterlimit   300
$forceapprox    file=forceapprox.dat fdsal
$interconversion  off
   qconv=1.d-10
   maxiter=25
$coordinateupdate
....
====

怎么修改?

多谢!!

作者: zhlong8   发布时间: 2011-07-15

多谢斑斑! 

作者: tcclab   发布时间: 2011-07-15

回复 tcclab


    你的问题需要用到替换 s/(file=\S+)/$1.dat/; 为什么会在下一行是因为 $_ 最后是一个 \n

作者: zhlong8   发布时间: 2011-07-15

回复 tcclab


    我给你写个你先凑合着用吧,新贴又被删除了……可能CU新开发出了什么敏感词自动删帖之类的功能

作者: zhlong8   发布时间: 2011-07-15

啊~ 
我可是遵纪守法的"良民"啊

作者: tcclab   发布时间: 2011-07-15

回复 tcclab
  1. #!/bin/perl
  2. use strict;
  3. use warnings;

  4. my($suffix, $file) = @ARGV;

  5. open my $fh, '<', $file or die $!;

  6. while (<$fh>) {
  7.     s/\b(file=\S+)/$1$suffix/; #用替换,如果一行可能有多个 file= 要加上 /g 修饰符
  8.     print;
  9. }
复制代码

作者: zhlong8   发布时间: 2011-07-15