# sed mv # 123-bbb.txt を 123.txt # | shを外した状態で変換文字列を確認すること $ for a in *.txt; do echo $a | sed -e "s/\(\(^.*\)-.*\)/mv \1 \2\.txt/" | sh; done # find sed mv # 123-bbb.txt を 123.txt # | shを外した状態で変換文字列を確認すること $ find . -name "*.txt" | sed -e 's/\(\(^.*\)-.*\)/mv \1 \2.txt/' | sh OR $ find . -name "*.txt" | sed -E 's/((^.*)-.*)/mv \1 \2.txt/' | sh