小编cap*_*ser的帖子

在使用"strict refs"时,不能使用字符串("XXX")作为符号引用

这是我试图解析的日志:

06:27:54 /data/noc/startup/startup_ptf_pats.sh startup initiated by waljoh @ Tue Nov  1      06:27:54 EDT 2011
06:27:54 /data/noc/startup/startup_ptf_pats.sh verifying that engine is change controlled
06:27:54 /data/noc/startup/check_change_controlled_files.sh all change controlled commands files are in synch
06:27:54 /data/noc/startup/check_today_is_holiday.sh Today is NOT a holiday
06:27:54 /data/noc/startup/check_ntpq.sh 159.79.35.42 time offset (0) is below 100   
Run Code Online (Sandbox Code Playgroud)

这是我写的脚本:

#!/usr/bin/perl
use warnings;
use strict;

my $todays_date = `/bin/date +%m-%d-%y`;
chomp $todays_date ;

my $grabDIR = "/data/noc/startup/logs/";
my $grabFILE = "pats." . "$todays_date" . ".txt";

print "$grabDIR$grabFILE\n" ;

my FILE;
open …
Run Code Online (Sandbox Code Playgroud)

perl

2
推荐指数
1
解决办法
1万
查看次数

对于相同的密码,htpasswd 的哈希值每天都不同。

我有一个通过 htpassword 调用运行用户名和密码的脚本:

 /usr/local/apache2/bin/htpasswd -b $file $user $pass
Run Code Online (Sandbox Code Playgroud)

并将它们添加到文件中。

bash-3.00$ grep caspers$nytest /prod/archive/2013Nov29/foo-users1
aacaspersrepo:$apr1$QSKSjpwI$Mrn8sWRki4Pb3kxYwayPF/
aacasperstreasview:$apr1$PHpwkF2N$YsAr7cnJtjABK7T8FbhgL.
casperstest:$apr1$lIuRZ1jW$DAHFKmIRHcPoS0kAzRcmB1
casperstest1:$apr1$1nyAfTJN$yAtF1ToIw5UCQxo7CJMcp0
casperstest2:$apr1$BZEcwVEV$dILld.zfxa4B6G0pKQFtg/
caspers$bank:$apr1$XWdLqwKb$O8st/xXcPOyEmApsHj4FS.
caspers$nytest:$apr1$N/GoMyoZ$5WGvyWVWGDgZPApuvGeb9/
casperscust$ny:$apr1$zCpRLoZG$zK8yc9IkKoR1BqGsHXFdK/
casperscust$nytest:$apr1$gLzFo3gk$YVZ9ALVhD/rHOhNUmJic80
bash-3.00$
bash-3.00$
bash-3.00$
bash-3.00$ grep caspers$nytest /prod/archive/2013Nov28/foo-users1
aacaspersrepo:$apr1$GahfhX78$eah4xp9ba.hQ1jb8NbPC.1
aacasperstreasview:$apr1$8aKZu1ku$Q8BKTSEdXFxkpQtXIhQO01
casperstest:$apr1$gmIdA8cX$FTe1hreH5/6gFLTFYA9zN.
casperstest1:$apr1$dtSjEVAZ$ya2S4gJ5ArKX7Z5kKDYnS.
casperstest2:$apr1$ZcKdZrTG$Ip0jxulsxR.KNJkDhi3rw1
caspers$bank:$apr1$BvCtx.n2$s/teof5StdXBFzc3wAe.d1
caspers$nytest:$apr1$GjOnubg1$KtselMH6H6nCyp7oiAbOJ/
casperscust$ny:$apr1$ieUhlGhA$zrHnSkdxbHlG7eK.3mmYO1
casperscust$nytest:$apr1$pAFgIv71$YMIjy8T7/6DQnJSdRYk361 
bash-3.00$
Run Code Online (Sandbox Code Playgroud)

天之间的差异是巨大的。问题是密码哈希从一天到下一天都在变化。您会认为除非用户更改它们,否则hasnes 将是相同的。htpasswd 使用的算法将为用户更改的相同密码输出相同的哈希值。

我在文档中没有看到任何内容。

这是预期的行为还是我的脚本有什么问题?

.htpasswd

2
推荐指数
1
解决办法
1299
查看次数

LINE的含义:在Perl中

我正在看这个Perl单行

perl -n -e 'print "$. - $_"' file
Run Code Online (Sandbox Code Playgroud)

它说这一个班轮转换成这个:

LINE:
  while (<>) {
    print "$. - $_"
  }
Run Code Online (Sandbox Code Playgroud)

哪个好,我不知道是什么LINE:.它看起来不像文件句柄,如果它是一个变量,它就没有$sign它的前面.

我的猜测是它是这样的@F:一个习惯用于Perl一个衬里​​.是LINE只是一些Perl的在单行使用命令行?

perl command-line

1
推荐指数
1
解决办法
87
查看次数

按日期在ASCII上对PERL数组进行排序

我需要做的是编写一个脚本,它将读入目录列表然后对它们进行排序,最后一个目录将被"关闭".

我的$ last_one = pop @sorted;

然后将删除最后一个目录 - 使用系统("rm- rf $ last_one")或remove_tree($ last_one).

 1  #!/usr/bin/perl
 2  use strict;
 3  use warnings;
 4
 5  my $dir_to_process = "/production/log/fo/archive/";
 6  opendir DH, $dir_to_process or die "Sorry, this is not going to work out $!";
 7
 8  while (my $name = readdir DH) {
 9       next if $name =~ /^\./;
10       push(my @unsorted,$name) ;
11       my @sorted_dir = sort @unsorted;
12       foreach my $sorted (@sorted_dir) {
13       print "$sorted\n";
14       sleep 1 ; …
Run Code Online (Sandbox Code Playgroud)

arrays sorting perl

1
推荐指数
1
解决办法
264
查看次数

删除与正则表达式匹配的行以及前两行

我有一个文件,我需要在正则表达式foo之前删除2行.

bad 1
foo
good 1
good 2
good 3
bad 2
bad 3
foo
good 4
good 5
good 6
bad 4
bad 5
foo
good 7
bad 6
bad 7
foo
good 8
good 9
good 10
bad 8
bad 9
foo
good11
Run Code Online (Sandbox Code Playgroud)

我可以用sed轻松完成:

casper_mint@casper-mint-dell /tmp $ cat dddd | sed '/bad/ , /foo/d'
good 1
good 2
good 3
good 4
good 5
good 6
good 7
good 8
good 9
good 10
good11
Run Code Online (Sandbox Code Playgroud)

我怎么能在perl中这样做?

perl sed lines

1
推荐指数
1
解决办法
57
查看次数

在awk中使用Perl正则表达式属性

我喜欢在GNU中使用Perl regex引擎grep

$ echo FOO | grep -P '(?i)foo'
FOO
Run Code Online (Sandbox Code Playgroud)

我使用它多次,效果很好。

有时我使用awk它是因为我认为它比bash shell具有更好的正则表达式处理-但是其中的正则表达式awk与Perl不同。

我使用awkgawk并且找到了不同的regex修饰符awk。在旅行中,我发现了awk/的3种不同的正则表达式修饰符gawk

--posix
--traditional
--re-interval
Run Code Online (Sandbox Code Playgroud)

您是否知道awkgrep上面的示例那样使用Perl regex的物种?

regex perl awk

1
推荐指数
1
解决办法
2101
查看次数

Perl 格式化数组输出。

我有一个小程序,我试图格式化输出。结果被加载到一个数组中 - 我只是在将数组打印成某种格式时遇到问题。

#!/usr/bin/perl
use strict ;
use warnings ;
my @first_array ;
my @second_array  ;
my @cartesian ;

while (<>) {
    my $first_input =  $_ ;
    @first_array = split(' ', $first_input) ;
    last ;
}
while (<>) {
    my $second_input = $_ ;
    @second_array = split(' ', $second_input) ;
    last ;
}


while(my $first=shift(@first_array)) {
    push(@cartesian, $first) ;
        my $second = shift(@second_array)  ;
        push(@cartesian, $second ) ;

}

print "This is the merged array: @cartesian\n" ;
Run Code Online (Sandbox Code Playgroud)

当我输入这个时,我得到这个:

$ ./double_while2.pl …
Run Code Online (Sandbox Code Playgroud)

arrays format perl

1
推荐指数
1
解决办法
258
查看次数

Bash - 从整数列表中获取 MAX 值

该脚本将 cvs 列表分成三列。我们专注于“名称”列。我想发现字符最多的名字。找到包含最多字符的名称后,我想将其分配给一个变量。

#!/bin/bash
for i in $(cat homeaway.txt )
do
echo $i | while IFS=, read -r area name host
do
        maxLength=0
        length=${#name}
        if [ $length -gt $maxLength ] ; then
            maxLength=$length
        else
           :
        fi
        printf "%s\n" $maxLength

      done
done
Run Code Online (Sandbox Code Playgroud)

脚本说 - 英文 - 如果长度大于 maxlength,则将 length 设置为 maxLength,如果不是,则不执行任何操作。其中字符数最多的区域字符串是“script_name_12345678999999”,有26个。当脚本读取所有字符时,$maxLength应该返回26。

__DATA__
HOME,script_name_12345,USAhost.com   
AWAY,script_name_123,USAhost.com
HOME,script_name_1,EUROhost.com
AWAY,script_name_123,USAhost.com
HOME,script_name_123456,EUROhost.com
AWAY,script_name_12345678999999,USAhost.com
HOME,script_name_1234,USAhost.com
AWAY,script_name_1234578,USAhost.com
HOME,script_name_12,EUROhost.com
AWAY,script_name_123456789,USAhost.com
Run Code Online (Sandbox Code Playgroud)

一旦脚本达到包含 26 个字符的区域值,它应该停止向 $maxLength 分配任何内容。相反,它返回每个字符串长度的列表,我不知道零是如何进入这里的

casper@casper01.com $ ./length_test.sh
17
0   ### how does the zero get in here ? …
Run Code Online (Sandbox Code Playgroud)

bash list max while-loop

1
推荐指数
3
解决办法
6705
查看次数

将数组拆分为变量

在将数组(array[0]- array[6])wal 的字段拆分为perl中的变量时,我很弱

这是一个大的程序结束-结果得到泵入到一个数组,然后以表格的形式通过电子邮件发送-这被抽出的阵列看起来像静态@mailarray下方.表格在电子邮件中被格式化了,它只是抽出相同的行 - 对于数组的每一行.它需要遍历整个数组7个字段到每一行.

mrktsrvr:ltick Chicago tkscan100:tmscn-Brooklyn OCOMsg2
mrktsrvr:ltick Chicago tkscan100:tmscn-Brooklyn OCOMsg2
mrktsrvr:ltick Chicago tkscan100:tmscn-Brooklyn OCOMsg2
mrktsrvr:ltick Chicago tkscan100:tmscn-Brooklyn OCOMsg2
mrktsrvr:ltick Chicago tkscan100:tmscn-Brooklyn OCOMsg2
mrktsrvr:ltick Chicago tkscan100:tmscn-Brooklyn OCOMsg2
Run Code Online (Sandbox Code Playgroud)

程序的结尾如下所示:

#!/usr/bin/perl

@mailarray = qw(mrktsrvr ltick Chicago tkscan100 tmscn Brooklyn OCOMsg2
mrktsrvr ltick Chicago ctdb811 dltic080 Brooklyn OCOMsg2
mrktsrvr ltick Chicago farm101 bhsrv0 Brooklyn OCOMsg2
mrktsrvr ltick Chicago farm102 bhsrv0 Brooklyn OCOMsg2
mrktsrvr ltick Chicago rnds110 nictsrv1 Brooklyn OCOMsg2
mrktsrvr ltick Chicago relay11 tryticUS1 Brooklyn …
Run Code Online (Sandbox Code Playgroud)

arrays variables perl split

0
推荐指数
1
解决办法
3320
查看次数

取消引用XML :: Simple哈希

我有一个看起来像这样的XML文件

<booklist>
   <book type="technical">
      <author>Book 1 author 1</author>
      <author>Book 1 author 2</author>
      <title>Book 1 title</title>
      <isbn>Book1ISBN</isbn>
   </book>
   <book type="fiction">
      <author>Book 2 author 1</author>
      <author>Book 2 author 2</author>
      <title>Book 2 title</title>
      <isbn>Book2ISBN</isbn>
   </book>
   <book type="technical">
      <author>Book 3 author 1</author>
      <author>Book 3 author 2</author>
      <author>Book 3 author 3</author>
      <title>Book 3 title</title>
      <isbn>Book3ISBN</isbn>
   </book>
</booklist>
Run Code Online (Sandbox Code Playgroud)

当我把文件放入翻斗机时 - 它看起来像这样:

#!/usr/bin/perl
use strict ;
use warnings ;
use XML::Simple ;
use Data::Dumper ;
my $book = ();

my $booklist = XMLin('book.xml_with_attrib');
print Dumper($booklist);

#foreach $book …
Run Code Online (Sandbox Code Playgroud)

xml perl

0
推荐指数
1
解决办法
310
查看次数

标签 统计

perl ×8

arrays ×3

.htpasswd ×1

awk ×1

bash ×1

command-line ×1

format ×1

lines ×1

list ×1

max ×1

regex ×1

sed ×1

sorting ×1

split ×1

variables ×1

while-loop ×1

xml ×1