sed

sed

フォルダが700個ほどあります。各フォルダには、ファイルのペア別の組み合わせが含まれています。各ペアごとの組み合わせに対して1つのファイルだけを維持したいと思います。どちらのファイルにも同じコンテンツが含まれているため、任意のペアのファイルをアーカイブできます。フォルダのファイル名は必ずしもアルファベット順に指定されるわけではありません。

  Example: 
      Folder1: 
        -> A-B.txt
        -> B-A.txt

      Folder2: 
        -> C-D.txt
        -> C-E.txt
        -> E-C.txt
        -> D-E.txt
        -> D-C.txt
        -> E-D.txt

     Final folder structure: 
         Folder1: 
               -> A-B.txt (or) B-A.txt
         Folder2: 
               -> C-D.txt (or) D-C.txt
               -> C-E.txt (or) E-C.txt
               -> D-E.txt (or) E-D.txt

ベストアンサー1

次のようなことができます

  ls *.txt | awk -F '[.-]' '{ if (f[$2,$1]) { print $0; }
                              else { f[$1,$2] = 1} }' | xargs rm

次のように動作します。そのファイルの名前をに割り当てますawk。各ファイルに対して、逆の名前のファイルがすでに配列に入力されていることを確認してくださいf。その場合はファイル名を出力します。そうでない場合は、配列に入れてくださいf。プログラムの出力を使用してawk重複ファイルを削除します。

おすすめ記事