質問: Ubuntuを使用しています。 画像ファイルが様々なディレクトリで大量にあります。 例: images/aaaa/aaaa/いち.jpg images/bbbb/aaaa/に.jpg images/cccc/aaaa/参.gif images/dddd/aaaa/ヨン.png すべての画像のルートはimagesです。 imagesにいる状態で、べつのディレクトリに日本語を含む画像ファイルだけをコピー(または移動)したいのです。 linuxコマンドで実現できますでしょうか?
回答: こんな感じでどうでしょう? コピー先ディレクトリをtargetdirと仮定しています。 ``` find images | perl -ne 'use Encode; binmode STDIN,":utf8"; while(<>){ m{[\p{Katakana}\p{Hiragana}\p{Han}][^/]*$} and print encode("utf8",$_)}' |xargs -i cp {} targetdir ; ``` 追記 -ne は -e とすべきでした。結果として正しい出力は得られますが。