小编mon*_*ool的帖子

在字符串上使用awk

我可以使用awk提取字符串中的第一列或任何列吗?实际上我正在使用一个文件并将其读取到一个变量我想在该变量上使用AWK并完成我的工作.

这怎么可能?有什么建议.

linux bash awk

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

找不到Perl模块

当我尝试将perl模块导入我的脚本时,它说没有找到perl模块.

#!/usr/bin/env perl

use lib 'mnt/hgfs/scripting/perl/perlib/Array';

use Shell;

#define all global variables here

use List::MoreUtils 'first_index';
use List::MoreUtils 'last_index';

use Getopt::Long;

use vars qw(%vectorList); 

use Array::Compare;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误 -

Can't locate Array/Compare.pm in @INC (@INC contains:           mnt/hgfs/scripting/perl/perlib/Array /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at wellbiasing.pl line 12.
BEGIN failed--compilation aborted at wellbiasing.pl line 12.
Run Code Online (Sandbox Code Playgroud)

即使我已经在perlib目录中安装了Array模块,它也说找不到模块.Array是perlib目录中的一个目录,我创建了将所有模块放在Array目录中的是Compare.pm.但为什么我无法运行呢?

perl

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

如果在bash中声明错误

i=0
for f in `awk '{print $1}' config.list`
do
    echo "i value is $i"
    if ["$i" = "0"]
    then
        echo "here"
        i=$((i+1))
        continue 
    fi
    arr[i]=$f  
    i=$((i+1))
done
Run Code Online (Sandbox Code Playgroud)

在上面的bash脚本中,我收到一个错误,我使用了if语句,看起来像这样

./script.sh: line 5: [0: command not found
Run Code Online (Sandbox Code Playgroud)

请指出我可能是我的错误.

linux bash

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

linux文件比较

我想在Linux中比较两个文件,但比较不应该基于逐行比较,我想将结果转储到另一个文件.例如:

file1是:

ABC
B
KLM
JAH
MONU
PANDA
Run Code Online (Sandbox Code Playgroud)

文件2是:

HELLO
PRETTI
ABC
B
LKMO
Run Code Online (Sandbox Code Playgroud)

现在我想要的是明确区分文件1和文件2之间的区别而不是逐行.(file1-file2)即文件1中的内容不在2中

差异文件:

KLM
JAH
MONU
PANDA
Run Code Online (Sandbox Code Playgroud)

我尝试过diff,comm在Linux中,但它通过逐行比较显示结果

unix linux filesystems

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

bash命令错误

i=0
while read line

    do
    echo "i is --- $i"
    #echo $line "\n"

    if (( $i > 0 ))
    then
    $Eda_package=$(echo $line | awk '{print $1}')
    $well_bias=$(echo $line | awk '{print $2}')
    $biasmap=$(echo $line | awk '{print $3}')
    $unified=$(echo $line | awk '{print $4}')
    echo "eda pack --$Eda_package  wellbias is --$well_bias biasmap is --$biasmap  unified-      -- $unified"
    fi
    i=$((i+1))
    done < config.list
Run Code Online (Sandbox Code Playgroud)

在上面的bash程序中,我收到一个错误:

./script.sh:line 9:= EDA_7p0:找不到命令

我该如何解决?

linux bash

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

在perl grep中模仿linux grep -w

perl中的grep为我提供了所有匹配的行与正则表达式.

对于前

{
    my @FAMILY_MAP= ("A2LVLX","LVLX","O2LVLX");
    my $search="LVLX";
    my @match = grep (/ALVL/, @FAMILY_MAP);
    print @match;
 }
Run Code Online (Sandbox Code Playgroud)

这里我的预期输出是LVLX,但我获得了数组中的所有三个元素.这也是Linux终端中的预期行为(如果grep LVLX是在包含这三个单词的文件上完成的).但我必须在终端中使用grep -w"LVLX"来获取LVLX作为输出.我需要一种方法来使用perl grep复制相同的方法.任何提示?

linux perl

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

标签 统计

linux ×5

bash ×3

perl ×2

awk ×1

filesystems ×1

unix ×1