私が達成したいことは2つのパラメータに基づいて、テキストファイルのレコードと一致するディレクトリ内のファイルを移動します。。
たとえば、テキストファイルには次の履歴があります。
SPPARK|10416|3308123|3308123|Uphold|Thelma|1930/05/20||
私のディレクトリには、次の内容のファイルがあります。
1123_M1123_UPHOLD_M1123_MESSAGE_SPPARK_348642.pdf
したがって、パフォーマンスのUPHOLD
4番目のフィールドが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