我可以使用awk提取字符串中的第一列或任何列吗?实际上我正在使用一个文件并将其读取到一个变量我想在该变量上使用AWK并完成我的工作.
这怎么可能?有什么建议.
当我尝试将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.但为什么我无法运行呢?
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中比较两个文件,但比较不应该基于逐行比较,我想将结果转储到另一个文件.例如:
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中,但它通过逐行比较显示结果
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:找不到命令
我该如何解决?
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复制相同的方法.任何提示?