小编fle*_*esk的帖子

将grep传递给bash中的变量

我有一个名为email.txt的文件,如下所示:

Subject:My test
From:my email <myemail@gmail.com>

this is third test
Run Code Online (Sandbox Code Playgroud)

我想通过使用bash脚本只取出这个文件中的电子邮件地址.所以我把这个脚本放在我的名为myscript的bash脚本中:

#!/bin/bash

file=$(myscript)

var1=$(awk 'NR==2' $file)

var2=$("$var1" | (grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'))

echo $var2
Run Code Online (Sandbox Code Playgroud)

但我无法运行此脚本.当我在bash中手动运行此命令时,我可以获取电子邮件地址:

echo $var1 | grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'
Run Code Online (Sandbox Code Playgroud)

我需要将电子邮件地址存储在变量中,以便我可以在其他函数中使用它.有人可以告诉我如何解决这个问题吗?谢谢.

linux bash grep

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

Perl Authen :: OATH和Google身份验证器 - 不兼容?

我的理解(可能显然是错误的)是Authen :: OATH模块与Google Authenticator App生成的totp代码兼容.但它对我不起作用,而类似的红宝石代码则有用.我们在这里是一个perl商店,如果有人能指出我正确的方向来帮助我免于逐行挖掘两个库,那将会有所帮助.

这款红宝石兼容:

require 'rubygems'

require 'rotp'

secret = "bqagf6ohx4rp3a67"

puts ROTP::TOTP.new(secret).now.to_s
Run Code Online (Sandbox Code Playgroud)

这个perl没有:

use Authen::OATH;

my $oath = Authen::OATH->new();

my $totp = $oath->totp(" bqagf6ohx4rp3a67" );

print "$totp\n";
Run Code Online (Sandbox Code Playgroud)

perl google-authenticator

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

Perl中参数输入机制有什么区别?

在读取下载的Perl模块时,我找到了几种定义输入参数的方法,如下所示.它们之间有什么区别?

sub new{
  my $class = shift;
  my $self = {@_};
  bless{$self,  $class};
}

sub count1{
  my ($self, $lab1) = @_;
}

sub new1{
  my ($class, $lab1) = @_;
  my $self = {};
  bless $class, $self;
}

sub setpath{
  my $self = shift;
}
Run Code Online (Sandbox Code Playgroud)

perl input parameter-passing bless

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

在for循环范围内声明的Perl标量在迭代之间保留其值

这是我关于SO的第一个问题,很抱歉,如果这很愚蠢,但是当我最近在生产代码中遇到它时,这真的让我很困惑.我把我的问题归结为两个代码块,我希望它能做同样的事情,即为每次迭代生成一个随机数:

for my $num (0 .. 5) {
    my $id = int rand 10;
    print "$id\n";    
}
Run Code Online (Sandbox Code Playgroud)

for (0 .. 5) {
    my $tmp;
    my $id = $tmp if $tmp;

    $id = int rand 10 unless $id;
    print "$id\n";
}
Run Code Online (Sandbox Code Playgroud)

第一个执行我期望它做的事情,但第二个执行任意数量的迭代相同的数字.$tmp在这种简化中总是未定义,所以它只是在那里显示行为,因为遗漏= $tmp if $tmp会产生我期望的结果.

我很欣赏为什么会发生这种情况.

perl for-loop

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

Perl部分匹配

请考虑下面的脚本,即使$ b是部分匹配,我也要将$ b与$ a匹配.可以这样做吗?

$a="MCF-7";
$b="MCF";
if($b=~m/$a/i)
{
    print "FOUND";
}
Run Code Online (Sandbox Code Playgroud)

perl

3
推荐指数
2
解决办法
6050
查看次数

如何从已传递给perl中的子例程的哈希中检索数组

我正在尝试编写一个子程序,它接受数组的散列作为参数.但是,当我尝试检索其中一个数组时,我似乎得到了数组的大小而不是数组本身.

my(%hash) = (  );
$hash{"aaa"} = ["blue", 1];

_subfoo("test", %hash);

sub _subfoo {

    my($test ,%aa) = @_;

    foreach my $name (keys %aa) {
        my @array = @{$aa{$name}};
        print $name. " is ". @array ."\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

这比我预期的那样返回2而不是(蓝色,1).在子例程中是否还有其他方法可以处理哈希中的数组?

如果这对于堆栈溢出,第一次海报和编程新手来说太简单了,请道歉.

arrays perl hash

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

解析perl数组

我不熟悉perl,我正在尝试编辑irssi翻译脚本.Web请求的结果返回为:

$result = {
 "data" => {
  "translations" => [
   {
    "translatedText" => "Halloween"
   }
  ]
 }
}
Run Code Online (Sandbox Code Playgroud)

我如何只获取translatedText部分,以便

$string = 'Halloween'
Run Code Online (Sandbox Code Playgroud)

谢谢.

perl perl-data-structures

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