小编Ren*_*aud的帖子

多个文件中的Grep打印匹配行与文件名

我正在使用grep从两个不同文件中的文件中找到匹配的行.它找到匹配的文件从蛮好File1File2File3,但是从目前有不止一个文件,它打印在其被旁边的行中找到的文件名.

grep -w -f File1 File2 File3
Run Code Online (Sandbox Code Playgroud)

输出:

File2: pattern

File2: pattern

File3: pattern

有没有选项可以避免打印File2:File3:

printing grep

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

将两个值从awk传递给bash

我有在我寻找的最高值列表,并使用最低值awkbash.我能够找到这些,但是我无法将值分配给某个变量,所以我可以在bash以后使用它们.

我的意见:

number  location  length  value

 1        2         40     0.96
---       5         45     0.97
 4        5         47     0.96
---       5         35     0.95
 2        5         60     0.95
---       3         55     0.96 
Run Code Online (Sandbox Code Playgroud)

我的awk命令:

awk 'NR==1{max=$3; min=$3}{if ($3>max) max=$3; if ($3<min) min=$3;} END {print max,min}' List.txt
Run Code Online (Sandbox Code Playgroud)

输出: 6035.

我知道这是可以从一个值传递bashawk通过右键在我的开始在bash声明,并再次awk用脚本-v.

Variable1=string;
awk -v Variable1=$Variable '{}'
Run Code Online (Sandbox Code Playgroud)

有没有办法做同样的事情,但从awk到bash所以我可以保持minmax

variables bash awk

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

Perl脚本的并行化

我有一个 Perl 脚本,我希望并行化。

while它由一个超过 11000 行的循环和另一个while3400 行的循环组成,这使得它非常慢。

open (FILE1, "File1.txt") or die "Can't open File1";
open (OUT, ">Outfile.txt");

while (<FILE1>)
{ 
 my @data=split (/ /, $_);
 my $RS=1;
 open (FILE2, "File2.txt") or die "Can't open File2";
 while (<FILE2>)
 { 
  my @value=split (/ /, $_);
  if ($data[$RS] == 1) {print OUT $value[1];$RS++;}
  elsif ($data[$RS] == 2) {print OUT $value[2];$RS++;}
  elsif ($data[$RS] == 0) {print OUT $value[3];$RS++;}
 }
 close FILE2;

}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来对每一行执行相当于 qsub 的操作,File1这样我就可以发送 3440 个作业。有什么建议么?如果可能的话我想继续使用 perl。我尝试将此代码插入到 …

parallel-processing perl while-loop

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

标签 统计

awk ×1

bash ×1

grep ×1

parallel-processing ×1

perl ×1

printing ×1

variables ×1

while-loop ×1