Perl:Perl正则表达式、循环和SHELL命令结合使用。

有一个实例,Perl从配置文件中读取一段pattern,这段pattern里有SHELL命令组合用于获取Linux的时事信息,整个pattern在获取SHELL命令返回值后才是完整的。

Perl获取pattern后,执行SHELL组合,然后把结果替换string中原有的SHELL命令字符。如果SHELL命令不止一个。还需要循环来分别用正则表达式提取执行、替换。例如:

#!/usr/bin/perl

use strict;
use warnings;

$_=‘Today\‘s Date is  : $(date +"%Y-%m-%d") $(date +"%y-%m-%d")‘;

my $result;

while(m/\$\(([^\)]*)\)/g) {
    $result=`$1`;
    chomp($rseult);
    $_=~s/\$\([^\)]*\)/$result/;
}
print;
时间: 2024-08-02 02:42:29

Perl:Perl正则表达式、循环和SHELL命令结合使用。的相关文章

c++与perl在正则表达式运算速度上的比较

写了两组代码文件,组内代码功能相同: testv.pl vs testv.cpp testreg.pl vs testreg.cpp 代码如下: ////////testreg.cpp/////////#include<iostream>#include<fstream>#include<regex>using namespace std;int main(int argv, char ** argc){    fstream in(argc[1], fstream::

Linux shell 命令和正则表达式

今天在Fedora20系统上编译VPP项目时遇到了一个问题,在最终编译并且使用rpmbuild生成的rpm安装包不正确,我们需要对生成rpm包的spec文件做一些小的修改. 首先我们来看看VPP自带的生成rpm包的spec描述文件,该文件为${VPP_TOPDIR}/build-root/rpm/vpp.spec, 我们可以打开看看该文件的内容: 其中在%install 段里面有如下的命令 1 # 2 # libraries  3 #  4 mkdir -p -m755 %{buildroot}

Perl入门(四)Perl的正则表达式

正则表达式是Perl语言的特色,基本的语法不是很难,但是编写一个符合需求.高效的正则表达式,还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正则表达式内容/; 作用:查找匹配内容中是否包含"正则表达式内容",如果包含返回1,否则返回0: #!user/bin/env perl -w #1... $str1 = "i like perl"; $result1 = ($str1 =~ m/perl/); print "$result1 $str

* 和 ?在 shell 命令行中与在正则表达式中的区别

Linux 正则表达式 你有没有想过,在 shell 命令行中的 *,?和正则表达式中的*,?是否一样? 自打好多年前接触 DOS,就知道了* 和?这两个通配符(Wildcard),象 dir *.* 这样的命令也不知道敲了多少遍. 后来,开始用 Windows 3.1 这样的图形界面操作系统,命令行就就得越来越少了. 再后来,开始学习正则表达式,又开始接触 * 和 ? 这样的东西.在正则中它们被称为元字符(Meta Character). 再再后来,开始使用 Linux,于是又开始使用命令行,

shell中while循环引用ssh命令的坑

原理shell代码如下: #!/bin/sh cat ../androidsrc | while read line do         ip=$(echo $line | awk '{print $1}')         srcdir=$(echo $line | awk '{print $2}')         destdir=$(echo $line | awk '{print $3}')         user=$(echo $line | awk '{print $4}')  

&#39;perl&#39; 不是内部或外部命令,也不是可运行的程序

下载安装最新的activestate后,运行cmd,执行命令:perl -v,还提示下面的错误:'perl' 不是内部或外部命令,也不是可运行的程序或批处理文件. 解决办法:set path=C:\Perl\bin;%path%; 'perl' 不是内部或外部命令,也不是可运行的程序

在 Ruby 中执行 Shell 命令的 6 种方法

我们时常会与操作系统交互或在 Ruby 中执行 Shell 命令.Ruby为我们提供了完成该任务的诸多方法. Exec Kernel#exec 通过执行给定的命令来替换当前进程,例如: $ irb >> exec 'echo "hello $HOSTNAME"' hello codefun $ 注意 exec 利用 echo 命令替换了 irb 进程,然后退出.因为 Ruby 实际上结束了该方法,所以只能有限使用.该方法的缺点是,你无法从 Ruby 脚本中知道命令是执行成功

Linux的经典shell命令整理

Linux的经典shell命令整理 1.删除0字节文件find -type f -size 0 -exec rm -rf {} \; 2.查看进程按内存从大到小排列ps -e -o “%C : %p : %z : %a”|sort -k5 -nr 3.按cpu利用率从大到小排列ps -e -o “%C : %p : %z : %a”|sort -nr 4.打印说cache里的URLgrep -r -a jpg /data/cache/* | strings | grep “http:” | aw

shell 命令集

shell 常用知识点--------------------------------------- sed 用法 http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed不向grep一样,不管是否找到指定的模式,它的退出状态都是0.只有当命令存在语法错误时,sed的退出状态才不是0. sed命