0

こんにちは、input_directory のファイルを繰り返しマージし、マージしたファイルを output_directory に配置したいと考えています。

input_directory にあるとします:file1.txt、file2.txt、file3.txt

出力ディレクトリに次のファイルを含めたい:

  • merge1.txt : file1.txt と同じ
  • merge2.txt : マージ file1.txt file2.txt
  • merge3.txt : マージ file1.txt file2.txt file3.txt

私は bash スクリプトの経験がほとんどありません。for ループで反復子を使用して実行できることは明らかですが、方法がわかりません。

前もって感謝します..

4

1 に答える 1

0

出力に追加された以前のファイル名を保存し、次の繰り返しで使用します。

#!/bin/bash

touch prev #a temp variable to hold previous filename
i=1;

for file in $(ls /INPUT/file*); 
do 
   cat /OUTPUT/$prev /INPUT/$file > /OUTPUT/merge$i;
   prev=merge$i;
   let i=i+1
 done

このコードはls、ファイルが同じプレフィックスを持つ場合に並べ替えられたファクト リストを利用します。プレフィックスが異なるファイル名があり、それらを出力する特定の順序がある場合は、変更できます。

于 2012-10-26T16:44:55.993 に答える