2016-05-28 24 views
0

名前の番号に従ってフォルダ内のファイルを移動しようとしています。 ファイル名はfooNNN_bar.txtのようになります/NNN/fooNNN_bar.txtファイル名の数字に応じてファイルを移動します

これは私が今持っているものです。各ファイルを移動する必要があるフォルダを表示します。 mvコマンドに追加する番号を収集する方法がわかりません。これは正しい方法ですか?

#!/bin/bash 
    for filename in foo*.txt; 
    do 
    echo "${filename}" | grep -Eo '[0-9]{1,4}'; 
done 

答えて

2

あなたのgrepは、あなたが望むように動作と仮定:完璧だ

#!/bin/bash 
    for filename in foo*.txt; do 
     num=$(echo "${filename}" | grep -Eo '[0-9]{1,4}') 
     mkdir -p "$num" 
     mv "$filename" "$num" 
done 
+0

。ありがとう。 –

+0

echo、pipe、grep: 'num =" $ {filename // [^ 0-9]} "'は必要ありません。 –

関連する問題