ファイルの特定の番号に基づいて一度に1つずつファイルを移動します。

ファイルの特定の番号に基づいて一度に1つずつファイルを移動します。

に基づいてこの問題、HTMLファイルの日付形式が変更されました。すべてのHTMLファイルの日付は次のとおりです。

20110730dateishere

dateishere日付の場所を簡単に見つけるためにわざわざファイルに追加しました。

さて、HTMLファイルディレクトリ内でその日付に基づいて一度に1つずつファイルを移動したいと思います。

どのファイルが最初に移動されるのか気にせずに一度に1つのファイルを移動する場合は、簡単に使用できます。

for file in $(ls | tail -1);
do
mv $file /other/location
done

しかし、日付に基づいて最も古いファイルを最初に移動するにはどうすればよいですかXXXXXXXXdateishere? (つまり、埋め込まれたHTMLファイルは、日付に基づいて20100110dateishere最初に前のファイルに移動し、20100111dateishere次のファイルに移動します。)

(注:20100111は2010年1月11日を意味します)

ベストアンサー1

これにより、トリックを実行できます。

for i in $(grep dateishere *.html | sed 's/\(.*\):.* \([0-9]*dateishere\).*/\1 \2/' | sort -k 2 | awk '{print $1}')
do
  mv $i blarg/
done

おすすめ記事