入出力にワイルドカードを使用してシェルスクリプトでファイルを検索する

入出力にワイルドカードを使用してシェルスクリプトでファイルを検索する

merge1別のファイル(、、)にマージする必要があるファイルのリスト(以下を参照)がありますmerge2。 、をmerge1含みます。file1a_1file1a_2merge2file2a_1file2a_2

頑張った

find . -name "file*_*"  -exec cat {} \; >> mergefile*

つまり、ファイル:

file1a_1
X1a_2
file1a_3
file1b_1
file1b_2
file1b_3

シェルスクリプトは、すべてのファイルをマージされたファイルに保存し、個別に分離するわけではありません。

どんな助けでも大変感謝します。

ベストアンサー1

もしファイルはすべて現在ディレクトリにあり、可能な最大マージ数(以下の例では100)でループをハードコードできます。

shopt -s nullglob
for((index=1;index<100;index++))
do
  inputs=( "file${index}"*_* )
  if [ "${#inputs[@]}" -gt 0 ]
  then
    cat -- "${inputs[@]}" > "merge${index}"
  fi
done

おすすめ記事