相关疑难解决方法(0)

Bash脚本对目录中的所有文件执行命令

有人可以提供代码来执行以下操作:假设有一个文件目录,所有这些都需要通过程序运行.程序将结果输出到标准输出.我需要一个脚本进入目录,在每个文件上执行命令,并将输出连接成一个大输出文件.

例如,要在1个文件上运行该命令:

$ cmd [option] [filename] > results.out
Run Code Online (Sandbox Code Playgroud)

bash scripting

257
推荐指数
6
解决办法
31万
查看次数

使用Bash批量重命名文件

Bash如何重命名一系列包以删除其版本号?我一直在玩弄周围既expr%%,都无济于事.

例子:

Xft2-2.1.13.pkgXft2.pkg

jasper-1.900.1.pkgjasper.pkg

xorg-libXrandr-1.2.3.pkgxorg-libXrandr.pkg

bash shell file-rename

96
推荐指数
6
解决办法
8万
查看次数

在bash中同时迭代两个数组

我有两个数组.

array=(
  Vietnam
  Germany
  Argentina
)
array2=(
  Asia
  Europe
  America
)
Run Code Online (Sandbox Code Playgroud)

我想同时循环这两个数组,即在两个数组的第一个元素上调用一个命令,然后在第二个元素上调用相同的命令,依此类推.伪代码:

for c in $(array[*]}
do
  echo -e " $c is in ......"
done
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

arrays bash loops

68
推荐指数
5
解决办法
5万
查看次数

读取unix和run命令中的文件列表

我是shell脚本的新手,我一整天都在努力弄清楚如何执行"for"命令.基本上,我想要做的是以下内容:

我有一个list.txt文件,其中包含一堆名称:

name1
name2
name3
Run Code Online (Sandbox Code Playgroud)

对于列表中的每个名称,有两个不同的文件,每个文件的名称结尾不同.例如:

name1_R1
name1_R2
Run Code Online (Sandbox Code Playgroud)

我试图运行的程序被调用sickle.基本上,它需要两个文件(彼此对应)并对它们进行分析,因此需要我有这个命名方案.镰刀命令如下:

sickle pe -f input_file1.fastq -r input_file2.fastq -t sanger \
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我,至少只是告诉我如何让unix读取文件列表并独立处理每一行,我想我可以从那里开始.我尝试了一些东西,但没有一个能奏效.

unix bash loops list fastq

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

如何使用 Bash 脚本循环遍历两个文件

我有一个file_in.txt包含以下名称的文件 ( ):

aphid_splitseq.1.fasta.annot.xml
aphid_splitseq.2.fasta.annot.xml
aphid_splitseq.3.fasta.annot.xml
aphid_splitseq.4.fasta.annot.xml
aphid_splitseq.5.fasta.annot.xml
Run Code Online (Sandbox Code Playgroud)

我还有另一个文件 ( file_out.txt) 具有以下名称:

aphid_splitseq_1
aphid_splitseq_2
aphid_splitseq_3
aphid_splitseq_4
aphid_splitseq_5
Run Code Online (Sandbox Code Playgroud)

现在我想要这样的陈述

java -cp *:ext/*: es.blast2go.prog.B2GAnnotPipe -in aphid_splitseq.1.fasta.annot.xml -out results/aphid_splitseq_1 -prop b2gPipe.properties -v -annot -dat 
Run Code Online (Sandbox Code Playgroud)

基本上,我要循环通过每个的file_in.txtfile_out.txt并取代的值-in-outij分别。

我在 Bash 中尝试过,但它似乎不起作用:

aphid_splitseq.1.fasta.annot.xml
aphid_splitseq.2.fasta.annot.xml
aphid_splitseq.3.fasta.annot.xml
aphid_splitseq.4.fasta.annot.xml
aphid_splitseq.5.fasta.annot.xml
Run Code Online (Sandbox Code Playgroud)

bash loops

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

Bash 将文件移动到同名文件夹

如果我将其发布在错误的位置,我提前道歉,我对脚本编写非常陌生,更不用说 stackoverflow 了:

我有许多文件.conf与许多同名但不带.conf扩展名的文件夹位于同一目录中。例如,我的目录如下所示:

136
136.conf
139
139.conf
...
Run Code Online (Sandbox Code Playgroud)

我想.conf用循环将文件移动到相应的文件夹中。我想我可以这样做:

for f in *.conf; do
    dir=${f:0:13}
    mv "$f" "$dir"
done
Run Code Online (Sandbox Code Playgroud)

但我显然做错了什么。我将非常感谢任何人对此的帮助。

bash rename

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

Linux bash 中的 python zip() 函数等效于什么?

我想迭代 bash 中的成对元素。在 Python 中,这很简单:

x_list = [1, 2, 3, 4]
y_list = ["a", "b", "c", "d"]

for x, y in zip(x_list , y_list):
    # here we have access to the values (i.e. the pairs are assigned to variables):
    result = do_something(x, y)
    print(result)
Run Code Online (Sandbox Code Playgroud)

我如何在 bash 中复制这种行为?我需要将这些对的值存储到 for 循环内部的变量中,以便我可以执行一些操作。它应该是这样的:

for x, y in 1a 2b 3c 4d
  do 
     python script.py --x_value=${x} --y_value=${y}
  done
Run Code Online (Sandbox Code Playgroud)

请注意,列表的元素也可能是复杂的东西,例如: x_list = [1e-5, 1e-4, 1e-3]y_list = [10, 20, 30]

bash loops

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

查找内容相同的文件

使用 Kubator 命令行回答我的问题:

 #Function that shows the files having the same content in the current directory
showDuplicates (){
  last_file=''
  while read -r f1_hash f1_name; do
    if [ "$last_file" != "$f1_hash" ]; then
      echo "The following files have the exact same content :"
      echo "$f1_name"
      while read -r f2_hash f2_name; do
        if [ "$f1_hash" == "$f2_hash" ] && [ "$f1_name" != "$f2_name" ]; then
          echo "$f2_name"
        fi
      done < <(find ./ -maxdepth 1 -type f -print0 | xargs -0 md5sum | …
Run Code Online (Sandbox Code Playgroud)

bash

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

标签 统计

bash ×8

loops ×4

arrays ×1

fastq ×1

file-rename ×1

list ×1

rename ×1

scripting ×1

shell ×1

unix ×1