1
akatquas 2019-03-16 15:22:57 +08:00 via iPhone
我也蹲一个答案(狗头
|
2
lzoje 2019-03-16 15:27:54 +08:00 via Android
可以试试直接重命名
|
3
geelaw 2019-03-16 15:28:56 +08:00
Get-ChildItem | Rename-Item -NewName { [regex]::Replace($_.Name, '^(.*?)-?[0-9.]+[0-9](\..*?)$', '$1$2') } -WhatIf
先这样看一遍确定是你想要的效果,然后去掉 -WhatIf |
4
wsh1108 2019-03-16 15:45:47 +08:00 via Android
可以 rename,网上也有批量修改文件名的小工具
|
7
0ZXYDDu796nVCFxq 2019-03-16 15:53:36 +08:00 via Android
ls
for sed mv done |
9
hanxiV2EX 2019-03-16 15:55:29 +08:00 via Android
ls -1|grep '-[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | while read line;do
newname=$(echo $line | cut -c .....) mv $line $newname done 正则可能写的有问题,另外 cut 忘记如何把减号后面的字符串切掉了,手机上写的,自己查下 man 吧 |
10
radc 2019-03-16 15:57:24 +08:00
如果全是例子中格式,可以直接用横线切割。。然后保留第一部分,补一个扩展名.txt
for i in *-*.txt; do mv "$i" "$(echo $i | awk -F- '{print $1}').txt"; done |
11
busfool 2019-03-16 16:00:17 +08:00 via Android
找到第一个-,找到最后一个.txt ,切割字符串
|
13
zyp0921 2019-03-16 16:21:19 +08:00
for i in `ls` ;do echo $i;done
|
14
xabc 2019-03-16 16:38:35 +08:00 via Android
|
15
ETiV 2019-03-16 17:39:15 +08:00
for i in $(find *.txt); do
src=$i; dst=$(echo $i | sed -E 's;\-[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3};;g' ); echo mv $src $dst; done 想执行就去掉倒数第二行的 echo IP 的替换正则并不严格,999.999.999.999 的格式也会被清空 |
16
Hopetree 2019-03-16 18:16:46 +08:00
任何一个语言写几句代码就能做到吧,再不行,Excel 都可以做到
|
17
mingl0280 2019-03-17 01:16:28 +08:00
|
18
mingl0280 2019-03-17 01:22:47 +08:00
如果有多于一个横杠的情况,将$1 替换成$1$2...$n,从大到小替换就完了……
|