シェルスクリプトを使用してフォルダ内の同様の名前のファイルを検索する

シェルスクリプトを使用してフォルダ内の同様の名前のファイルを検索する

同じIDを持つフォルダからxmlファイルを選択する必要があります。たとえば、という名前があります。

  1. S-000001-0-0.xml
  2. S-000001-0-1.xml
  3. S-000001-0-2.xml
  4. S-000001-0-3.xml
  5. S-000001-0-4.xml
  6. S-000002-0-0.xml
  7. S-000003-0-0.xml

XML 1〜5は1つのIDに属し、6と7は異なるIDに属します。私の要件は、1〜5種類のファイルを一緒に選択して新しいフォルダに移動することです。

答え1

あなたはそれを使用することができます全体的な状況このように:

mv S-000001-*.xml dir-to-move-to

答え2

for x in `ls S*.xml | egrep -o '[0-9]{6}' | sort | uniq`; do mkdir -p /tmp/$x; cp S-$x-* /tmp/$x/.; done

これにより、/ tmpにフォルダID(各ID用)が作成され、同じIDを持つすべてのファイルがそこにコピーされます。

テストが正常な場合cpに置き換えることができます。mv

IDは6桁で、他の数字はすべて小さいと仮定します。

答え3

find /path/to/old/directory -name 'S-??????-?-?.xml' -type f -print0 | \
    xargs -r0 mv -vt /path/to/new/directory

関連情報