各フォルダの3番目のファイルに対してのみコマンドを実行する方法

各フォルダの3番目のファイルに対してのみコマンドを実行する方法

3つの.txtファイルを含むサブフォルダがあります。各サブフォルダの3番目のファイルのみを選択できますか?実際、各ファイル名の末尾に「e」をコピーし、名前を変更または追加したいと思います。各フォルダの3番目のファイルにのみ適用されます。これはフォルダです

New folder/20130903/ELF:

Naqs_20130901.txt
Naqs_20130902.txt
Naqs_20130903.txt

New folder/20130904/ELF:

Naqs_20130902.txt
Naqs_20130903.txt
Naqs_20130904.txt

3番目のファイルでのみこれを行います。

ベストアンサー1

以下を使用している場合は、bash配列内のファイル名拡張子を使用してこれを行うことができます。

for dir in New\ folder/20130903/ELF New\ folder/20130904/ELF ; do
    files=( "$dir"/* )   # store all matching filenames in an array
    echo "${files[2]}"    # use 3rd element (subscripts are 0-based)
done

この出力

New folder/20130903/ELF/Naqs_20130903.txt
New folder/20130904/ELF/Naqs_20130904.txt

その行をecho次のファイルで実行するために必要なコマンドに置き換えます。

mv "${files[2]}" "${files[2]}e"

おすすめ記事