スクリプト - パラメータに基づいてテキストファイルのレコードと一致するファイルを移動します。

スクリプト - パラメータに基づいてテキストファイルのレコードと一致するファイルを移動します。

私が達成したいことは2つのパラメータに基づいて、テキストファイルのレコードと一致するディレクトリ内のファイルを移動します。

たとえば、テキストファイルには次の履歴があります。

SPPARK|10416|3308123|3308123|Uphold|Thelma|1930/05/20||

私のディレクトリには、次の内容のファイルがあります。

1123_M1123_UPHOLD_M1123_MESSAGE_SPPARK_348642.pdf

したがって、パフォーマンスのUPHOLD4番目のフィールドがM1123私のテキストファイルのフィールドと一致する場合は、そのフィールドを指定されたディレクトリに移動したいと思います。

for files in test/* ; do
 echo $files | awk -F "_" '{print $3,$4}'
done

ベストアンサー1

この試み。テスト後、「echo」コマンドをcpまたはmvに変更します。

for f in samples.txt ; do 
  echo /source/path/*$(cut -d '|' -f 5,2 $f | tr '|'a-z '_'A-Z)*.pdf /destination/path
done

すみません、私の間違いです。 @Kusalananda ありがとうございます。上記の回答が間違っていると思って、この回答を試してください。 /srcから/dstにファイルをコピーする列5と4をフィルタリングするとします。

awk -F "|" '{system("cp /src/*"toupper($5)"_"$4"*.pdf /dst")}' samples.txt

おすすめ記事