Pie*_*erk 15 solaris filenames rename
我有一堆文件如下:
04602635_b0294.DAT20120807164534
04602637_b0297.DAT20120807164713
04602638_b0296.DAT20120807164637
04602639_b0299.DAT20120807164819
04602640_b0298.DAT20120807164748
04602641_b0300.DAT20120807164849
04602650_b0301.DAT20120807164921
04602652_b0302.DAT20120807164956
Run Code Online (Sandbox Code Playgroud)
我需要重命名它们以排除前缀。它需要看起来像这样..
b0294.DAT20120807164534
b0297.DAT20120807164713
b0296.DAT20120807164637
b0299.DAT20120807164819
b0298.DAT20120807164748
b0300.DAT20120807164849
b0301.DAT20120807164921
b0302.DAT20120807164956
Run Code Online (Sandbox Code Playgroud)
编辑
我忘了补充说我使用的是 Solaris。
rus*_*ush 25
for file in * ; do
echo mv -v "$file" "${file#*_}"
done
Run Code Online (Sandbox Code Playgroud)
运行它以确保一切正常。
如果是,请echo从命令中删除,它会根据需要重命名文件。
"${file#*_}"
Run Code Online (Sandbox Code Playgroud)
是 shell 中常见的替换功能。它删除第一个_符号之前的所有字符(包括符号本身)。有关更多详细信息,请查看此处。
您可以rename为此使用该工具:
rename "s/.*_//" *
Run Code Online (Sandbox Code Playgroud)
如果你追加-n它不会重命名任何东西,只是告诉你没有-n.
为了回应 rush 的评论:我rename的实际上是一个链接,指向prenameDebian 和 Ubuntu 的perl软件包。
| 归档时间: |
|
| 查看次数: |
12926 次 |
| 最近记录: |