2017-02-03 15 views
0

私は、タイムスタンプで始まる名前のファイル、例えば20170102065744.getを含むディレクトリを持っています。これらのファイルの中にはパターン番号456787などが含まれています。名前が201701 *に一致するファイルのみを移動し、番号パターン456787を元のディレクトリから別のディレクトリに移動する必要があります。特定の名前を持ち、特定のパターンを含むファイルをUnixの別のディレクトリに移動します。

OSは、Solaris OS上の正しい構文がありますが、このようなものを使用して(と仮定すると、あなたの現在のシェルプロンプトの位置を含むそのフォルダにあることを達成することができるかもしれないLinuxシステムについて

答えて

1

わからないSun SolarisのUnixのですファイル)

for i in `find . -type f -name "*201701*" | grep 456787 `; do mv $i move_to_folder/; done 
+0

によって提案されたアイデアに基づいてグレップを使用して、シェルスクリプトを使用してそれを達成することができました。@はBogdan .Can私は、コマンドラインからこれを行いますか、シェルスクリプトを書く必要がありますか? – Pooja

+0

あなたは両方の方法でそれを行うことができます。 'findにiのために #!/ bin/bash のような単純なシェルスクリプトを作成することができます。 -type f -name "* 201701 *" | grep 456787 '; mv $ i move_to_folder /を実行します。 done そのスクリプトをwhatever.shとして保存し、cronジョブを介して実行します。 –

0

は私が@Bogdan

#!/bin/bash 
for i in 'grep -l 456787 src_dir/201701*` 
do 
    mv $i destn_dir/ 
done 
関連する問題