从文件中获取pattern,并从另一个目录中grep与pattern相关的所有文件

  • 本文关键字:pattern 文件 获取 另一个 grep linux
  • 更新时间 :
  • 英文 :


我有一个这样的文件名列表:

T0rain.Zfp691_0895.2_v2_deBruijn.txt
Train.Hbp1_2241.2_v2_deBruijn.txt
Train.Zfp740_0925.2_v2_deBruijn.txt
Train.Hbp1_2241.3_v1_deBruijn.txt
Train.Zfp740_0925.3_v1_deBruijn.txt
Train.Hic1_2816.2_v1_deBruijn.txt
Train.Zic1_0991.2_v1_deBruijn.txt

我想提取列车之间的所有名称。和_像这样:

Zfp691
Hbp1
Zfp740
Hbp1
zfp740
Hic1
Zic1

我有另一个文件列表:

Zfp691.pwm.txt
Hbp1.pwm.txt
Zfp740.pwm.txt
Hbp1.pwm.txt
zfp740.pwm.txt
Hic1.pwm.txt
Zic1.pwm.txt
Zic1.pwm.RC.txt

我想提取所有匹配的情况例如:

Train.Zic1_0991.2_v1_deBruijn.txt匹配Zic1.pwm.txt和Zic1.pwm.RC.txt

这些输出参数被传递给我的R脚本。所以SH脚本应该返回参数=

$i (Train.Zic1_0991.2_v1_deBruijn.txt) +  $j Zic1.pwm.txt
$i (Train.Zic1_0991.2_v1_deBruijn.txt) +  $j Zic1.pwm.RC.txt

我不知道这是否可能。我开始尝试这样做:

#!/bin/bash
for i in input/*/testtrain/Train*deBruijn.txt
do
    $i 
done
for j in input/All_PWMs/*/*.txt
do
    $j 
done
echo qsub script3.sh $i $j

这里我试着给script3.sh的参数,但这只给1组合回来。有人能给点提示吗?比如如何匹配/grep名称。或者另一种传递参数的方式。

Script3.sh用于在linux命令行中调用R。因此,参数只是通过这个文件传递,以调用一个具有debruijn和pwm组合的单个R作业。

这个脚本需要1个debruijn.txt和1个ppm .txt来计算我需要的值。所以对于这个例子,我将得到2个组合:

debruijn.txt and pwm1.txt   -----> pass the args to R as combination 1
debruijn.txt and pwm2.txt   -----> pass the args to R as combination 2

Perl:

#!/usr/bin/perl
@files=glob("*.*_*");
foreach $f (@files) {
  $f =~ /^[^.]+.([^_]+)_/;
  $pre = $1;
  @f2 = glob ("$1*");
  print "$f found files ".join(" ",@f2)."n";
  system ("./script.sh",$f,@f2) && die ($!);
}

给输出:

T0rain.Zfp691_0895.2_v2_deBruijn.txt found files Zfp691.pwm.txt
Train.Hbp1_2241.2_v2_deBruijn.txt found files Hbp1.pwm.txt
Train.Hbp1_2241.3_v1_deBruijn.txt found files Hbp1.pwm.txt
Train.Hic1_2816.2_v1_deBruijn.txt found files Hic1.pwm.txt
Train.Zfp740_0925.2_v2_deBruijn.txt found files Zfp740.pwm.txt
Train.Zfp740_0925.3_v1_deBruijn.txt found files Zfp740.pwm.txt
Train.Zic1_0991.2_v1_deBruijn.txt found files Zic1.pwm.RC.txt Zic1.pwm.txt

我的"script.sh"是:

#!/bin/sh
echo Script got $0 $1 $2 $3

确保您chmod 755所有的脚本,等等

相关内容

最新更新