【发布时间】:2018-06-12 03:27:22
【问题描述】:
我有以下文件名,我正在尝试将 v5.4b 重新标记为 v5.7:
v5.4b_lvl-1.e8974326
v5.4b_lvl-1.o8974326
v5.4b_lvl-1.pe8974326
v5.4b_lvl-1.po8974326
v5.4b_lvl-2.1.e8974303
v5.4b_lvl-2.1.o8974303
v5.4b_lvl-2.1.pe8974303
v5.4b_lvl-2.1.po8974303
v5.4b_lvl-2.2.e8974304
v5.4b_lvl-2.2.o8974304
v5.4b_lvl-2.2.pe8974304
v5.4b_lvl-2.2.po8974304
v5.4b_lvl-3.1.e8974305
v5.4b_lvl-3.1.o8974305
v5.4b_lvl-3.1.pe8974305
v5.4b_lvl-3.1.po8974305
v5.4b_lvl-4.1.e8974327
v5.4b_lvl-4.1.o8974327
v5.4b_lvl-4.1.pe8974327
v5.4b_lvl-4.1.po8974327
我不能这样做 mv v5.4b_* v5.7_* 因为它认为 v5.7_* 是一个目录所以我正在尝试 for-loop 但我无法让它工作
我正在尝试来自此 SO 帖子 How to set a variable to the output of a command in Bash? 的推荐答案,但得到一堆空行。
我做错了什么?如何将cut 的输出保存到SUFFIX 以便mv $i v5.7_$SUFFIX?
-bash-4.1$ for i in v5.4b*; do echo $i | SUFFIX=`cut -f2 -d'_'`; echo ${SUFFIX}; done
【问题讨论】:
标签: bash unix for-loop filenames cut