时间:2010-07-23 19:46:36

标签: perl

7 个答案:

答案 0 :(得分:28)

答案 1 :(得分:3)

有时打破Perl机箱对于这些单行程序来说是个好方法:

for d in 1 2 ; do cat kk2 | perl -lne ' print "'"${d}"': OK" if /hdisk'"${d}"'\s+/';done

答案 2 :(得分:2)

答案 3 :(得分:2)

答案 4 :(得分:1)

答案 5 :(得分:0)

答案 6 :(得分:0)

我的解决方案有点不同。我通过谷歌搜索问题的标题,但我试图执行不同的东西。这是为了以防万一:

仅供参考,我在Solaris上使用tcsh

我有以下单行:

perl -e 'use POSIX qw(strftime); print strftime("%Y-%m-%d", localtime(time()-3600*24*2));'

输出值:

2013-05-06

我试图将其放入shell脚本中,因此我可以创建一个文件名中包含日期为X天的文件。我试过了:

set dateVariable=`perl -e 'use POSIX qw(strftime); print strftime("%Y-%m-%d", localtime(time()-3600*24*$numberOfDaysPrior));'`

但由于变量替换,这不起作用。我不得不乱用报价,让它正确地解释它。我尝试将所有内容用双引号括起来,但是这使得Perl命令在语法上不正确,因为它与日期格式周围的双引号混淆。我完成了:

set dateVariable=`perl -e "use POSIX qw(strftime); print strftime('%Y-%m-%d', localtime(time()-3600*24*$numberOfDaysPrior));"`

这对我来说非常有用,无需借助任何奇特的变量导出。

我意识到这并没有完全回答你的具体问题,但它回答了标题并可能帮助其他人!