小编Per*_*ika的帖子

将文件拆分为包含">"字符的行

我有一个文件,其中一些行以'>'开头,所有其他行以一些字母开头.我想将我的大文件剪成几个较小的文件,以便剪切始终在">"之前.

我记得有一次我可以自己在bash上写这样的东西,但不幸的是我没有保存副本.

例如

>1
HAVE
ANIC
EDAY
>2
FOLK
SE
>3
SUNS
HINE
Run Code Online (Sandbox Code Playgroud)

将产生3个文件,每个文件在第一行都有">".

bash split file

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

从名称取自另一个变量的变量中获取内容

我正在做一些shell脚本.

我使用这种结构来创建新变量:

eval ${ARG}_ext=fastq
Run Code Online (Sandbox Code Playgroud)

哪个工作得很好,因为我可以直接使用这些新创建的变量:

$file_ext
Run Code Online (Sandbox Code Playgroud)

现在我想为名为extension的变量赋值:

extension=
Run Code Online (Sandbox Code Playgroud)

指定的值应该是变量$ {ARG} _ext中的值.拜托,我该怎么做?

我试过了

extension=eval ${ARG}_ext;
Run Code Online (Sandbox Code Playgroud)

但这给了我变量的名称,我想要它的价值.谢谢.

variables bash eval fastq

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

C#如何判断,ArrayList是否包含具有某些属性的对象

我有一个自定义类对象的ArrayList.我想知道,如果ArrayList包含具有某些属性的对象.我不关心对象,只要有一些.是的,我可以用foreach循环来做到这一点,但我想知道是否有更优雅的方式这样做.

谢谢你的建议.

c# contains arraylist

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

如何在解析源代码时在sed中打印部分正则表达式匹配?

我想像这样在正则表达式匹配之间打印部分:

echo "this is foo and another foo quux" | sed 's/this\(.*\)another.*/\1/'
Run Code Online (Sandbox Code Playgroud)

打印

 is foo and
Run Code Online (Sandbox Code Playgroud)

什么是完全正常的,因为我希望在这个与另一个印刷品之间找到一部分.

但是,如果我想解析我的源代码并使用:

cat source_code | sed 's/.*AdulterateFood\(.*\)DangerousFood.*/\1/'
Run Code Online (Sandbox Code Playgroud)

而且我确实知道AdulterateFood和DangerousFood只有一次在源代码中,它仍然打印所有内容,整个文件:(我想知道为什么...... AdulterateFood和DangerousFood在不同的行.

谢谢你的建议.

regex parsing sed match

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

shopt -s extglob 不工作

我正在远程服务器上运行我的脚本。这是我的 .sh 脚本的标题:

#!/bin/bash

shopt -s extglob; 
#turns on extended globbing features ('!' can then be used to exclude file names)

echo `ls -la /storage/brno2/home/nicki/snp/`;
cp -r /storage/brno2/home/nicki/snp/(!input) .
Run Code Online (Sandbox Code Playgroud)

感谢 echo,我可以看到名为“input”的文件夹位于我期望的文件夹中。然而,似乎 extglob 不适合我:(

/var/spool/torque/mom_priv/jobs/2308017.arien.ics.muni.cz.SC: line 11: syntax error near unexpected token `('
/var/spool/torque/mom_priv/jobs/2308017.arien.ics.muni.cz.SC: line 11: `cp -r /storage/brno2/home/nicki/snp/(!input) .'
Run Code Online (Sandbox Code Playgroud)

我当然可以列出我想要复制的所有文件。尽管如此,我还是想避免这种令人讨厌的做法。

谢谢。

bash wildcard

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

Nextflow:如何将输出(多个文件)从publishdir传递到下一个进程?

我有一个进程生成两个我感兴趣的文件,hitsort.cls 和 contigs.fasta。我使用publishdir输出这些:

process RUN_RE {
    publishDir "$baseDir/RE_output", mode: 'copy'
  
    input:
    file 'interleaved.fq'

    output:
    file "${params.RE_run}/seqclust/clustering/hitsort.cls"
    file "${params.RE_run}/contigs.fasta"

    script:
    """
    some_code

    """

  }
Run Code Online (Sandbox Code Playgroud)

现在,我需要这两个文件作为另一个进程的输入,但我不知道该怎么做。

我尝试过调用这个过程

NEXT_PROCESS(params.hitsort, params.contigs)
Run Code Online (Sandbox Code Playgroud)

同时将输入指定为:

process NEXT_PROCESS {
  
    input:
    path hitsort
    path contigs
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为只使用基本名称而不是完整路径。基本上我想要的是等待 RUN_RE 完成,然后使用它输出的两个文件进行下一个进程。

process nextflow publishdir

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

<DATA>阻止foreach循环被执行,为什么?:)

我有两个嵌套的foreach循环.如果我使用此代码:

foreach (@directories) {
    my $actual_directory = $_;
    print "\nactual directory: ".$actual_directory."\n";

    foreach (@files) {
        my $file_name = $_; 
        my $actual_file = $actual_directory.$file_name;
        print $actual_file."\n";

        open(DATA, $actual_file) or die "Nelze otev?ít zdrojový soubor: $!\n";
        my $line_number = 0;

        #   while (<DATA>){
        #       my @znaky = split(' ',$_);
        #       my $poradi = $znaky[0]; #poradi nukleotidu
        #       my $hodnota = $znaky[1]; #hodnota

        #       my @temp = $files_to_sum_of_lines{$actual_file};
        #       $temp[$line_number] += $hodnota;    
        #       $files_to_sum_of_lines{$actual_file} = @temp;

        #       $line_number+=1;
        #   }
        #   close(DATA); 
    } …
Run Code Online (Sandbox Code Playgroud)

perl foreach

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

gnuplot:在顶部设置最小数字的调色板标签

我正在使用命令在gnuplot中制作调色板:

set pm3d implicit at b
set palette model RGB maxcolors 5
set cbrange [0:20]
set palette model RGB defined (4 '#006400', 8 '#00008B', 12 'blue', 16 '#C71585', 20 'red')
set cbtics 4
Run Code Online (Sandbox Code Playgroud)

这样我在垂直调色板上从上到下得到订单20,16,12,8,4,0.我需要从上到下阅读0,4,8,12,16,20.

我没有找到任何已经存在此订单的示例(从最小到最大).

谢谢你的建议:)

gnuplot labels color-palette

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

无法匹配 sed regexp 中多次出现的字符

我试图在行尾删除 As 。

alice$ cat pokusni 
SALALAA
alice$ sed -n 's/\(.*\)A$/\1/p' pokusni 
SALALA
Run Code Online (Sandbox Code Playgroud)

一个A被删除就好了

alice$ sed -n 's/\(.*\)A+$/\1/p' pokusni 
alice$ sed -n 's/\(.*\)AA*$/\1/p' pokusni
SALALA
Run Code Online (Sandbox Code Playgroud)

多次出现不是:(

我可能只是犯了一些非常愚蠢的错误,有什么帮助吗?谢谢。

regex sed

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