全球主机交流论坛

标题: 50元求一shell或perl脚本 [打印本页]

作者: 查无此人    时间: 2017-1-6 23:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 跳帧    时间: 2017-1-6 23:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: dupit8    时间: 2017-1-7 00:01
可以弄。不过给我解析清楚,替换$1 和$2 是啥意思。
作者: interesting    时间: 2017-1-7 00:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: Vicer    时间: 2017-1-7 00:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: MagicHen    时间: 2017-1-7 00:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: hawk    时间: 2017-1-7 00:24
会写perl,但完全不晓得你在说啥子,可以pm我
作者: 查无此人    时间: 2017-1-7 00:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 查无此人    时间: 2017-1-7 00:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: zsl198854    时间: 2017-1-7 00:47
虽然看懂意思了    但是我还不会写代码
作者: 园丁    时间: 2017-1-7 01:23
读取a的条目,然后填充b模板生成对应的文件。b模板里面要替换的条目对应的行应该是不变的吧,那就手动写入要修改的位置
  1. #!/bin/bash
  2. a="$1" ##目标文件
  3. b="$2" ##模板

  4. #array=(1 2 3) 下面填入行数
  5. array=()  

  6. while read line
  7. do
  8.         filename="$line"
  9.         cp $b "$filename"
  10.         n=1
  11.         for i in ${array[*]}
  12.         do
  13.                 sed -i "${i}s/.*/${line}/" "$filename"
  14.         done
  15. done < $a
复制代码

作者: hawk    时间: 2017-1-7 01:28
保存为 xxx.pl, 然后执行 xxx.pl <a> <b>

  1. #!/usr/bin/perl

  2. use strict;
  3. my $src = $ARGV[0];
  4. my $tmplt = $ARGV[1];

  5. open _TEMPLATE_HNDL_, $tmplt or die $!;
  6. my $template = do { local $/=undef; <_TEMPLATE_HNDL_>; };  
  7. close _TEMPLATE_HNDL_;

  8. open _FILE_HNDL_, $src or die $!;
  9. while(<_FILE_HNDL_>) {
  10.     my $line = $_ =~ s/^\s+//gr;
  11.     $line =~ s/\s+$//g;

  12.     open _OUTPUT_HNDL_, ">$line";
  13.     print _OUTPUT_HNDL_ $template =~ s/\$\d+/\E$line/gr;
  14.     close _OUTPUT_HNDL_;
  15. }
  16. close _FILE_HNDL_;
复制代码

作者: 查无此人    时间: 2017-1-7 11:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 查无此人    时间: 2017-1-7 12:00
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/) Powered by Discuz! X3.4