閉鎖。 この質問はトピックから外れています。現在、回答を受け付けていません。
この質問を改善する
Ubuntu
この質問を改善したいですか? 質問を更新して、AskUbuntuのトピックになります。
3年前に閉鎖されました。
この質問を改善する
1000個のファイルを含むフォルダがあります。
彼らの名前は以下のようなものです
…P1_A1 _R2…。
…P1_A2 _R2…。
…P1_A3 _R2…。
強調表示されているように、真ん中だけが重要です
そして私はキー.txt
を持っています この情報と同じフォルダ内のファイル
Sample P R Col
1 1 A 1
2 1 A 2
3 1 A 3
.txt
を確認したい ファイルを作成し、それに応じてファイルの名前を変更するか、別のフォルダに名前を付けて保存します。たとえば
.._ P1_A1 _ ..
sample1
である必要があります .txt
を見ると ファイル、それは
Sample P R Col
1 1 A 1
.._ P1_A2 _ ..
sample2
である必要があります .txt
を見ると ファイル、それは
Sample P R Col
2 1 A 2
承認された回答:
すべての名前が一意であると安全に推測できる場合、名前に_P1_A1
が含まれているファイルは1つだけであることを意味します。 、_P1_A2
が1つだけ など、これを行うことができます:
$ awk 'NR>1{print "mv *_P"$2"_"$3$4"* sample"$1}' key.txt
mv *_P1_A1* sample1
mv *_P1_A2* sample2
mv *_P1_A3* sample3
Awkは入力を1行ずつ読み取り、空白のフィールドに分割します。したがって、最初のフィールドは$1
です。 、2番目の$2
ここでは、キーファイルを処理し、正しいmv
を出力しています。 ファイルのフィールドからビルドしてコマンドを実行します。
確かにmv
印刷されたコマンドは正しいので、次のコマンドで実行できます:
awk 'NR>1{system("mv *_P"$2"_"$3$4"* sample"$1)}' key.txt