在linux中的多个目录中的文件上运行shell脚本

时间:2016-03-09 18:16:17

标签: linux shell

我有一个需要在配对文件上运行的shell脚本(例如file1file2)。对于每对,在当前目录中应该生成5个输出文件。如何在不同目录中的多个配对文件上运行shell脚本?

更具体地说,结构如下所示:

pair1: /x/y/z/1/file1 and x/y/z/1/file2
pair2: /x/y/z/2/file1 and x/y/z/2/file2

我想在像这两个对的多个对上运行相同的shell脚本。输出需要保存在当前目录中,例如/x/y/z/1/的{​​{1}}。

1 个答案:

答案 0 :(得分:0)

将脚本运行为:

myscript /x/y/z/1/file1 /x/y/z/1/file2 /x/y/z/2/file1 /x/y/z/2/file2

该脚本包含:

#!/bin/bash

create_five_files_with_pair() {
  cp $1 outfile1
  cp $2 outfile2
  cat $1 $2 > outfile3
  cat $2 $1 > outfile4
  paste $1 $2 > outfile5
}

while test $# -gt 1
do
  cd $(dirname $1)
  create_five_files_with_pair $(basename $1) $(basename $2)
  shift
  shift
done