ファイルを順次ロード

ファイルを順次ロード

シェルスクリプトで同じファイル名を持つ複数のファイルをロードする必要がありますが、各ファイル名の前にYYMMDDPERSONNELを追加する必要があります。例: 231102PERSONNEL と 230103PERSONNEL 同じディレクトリに異なるファイルがたくさんあるため、ソート時にファイル名が重要です。ロードするファイルを古いものから最新のものに並べ替える必要があります。

現在私が持っているのは、一度に1つのファイルのみを処理するように設計されています。

ベストアンサー1

これはパイプを使った簡単な作業です。

find . -maxdepth 1 -type f -name '*PERSONNEL.gz' -print | \
    sed -e 's%^./%%' | \
    sort | \
    xargs -r /bin/echo 

manページを読んでください。

簡単な概要は次のとおりです。

  • findファイル名リストの印刷STDOUT
  • sedもっと見やすくする(./231102PERSONNEL.gzに変更231102PERSONNEL.gz
  • sortリストを並べ替えます。
  • xargsできるだけ多くのファイルを配置します(xargs --show-limits </dev/null参照あなたの制限)リストの残りの部分に対して「コマンド」を繰り返します。
  • /bin/echoプレースホルダーです。

おすすめ記事