linux文件重命名
文件名显示异常
跑测CTS,linux环境看跑测结果log file显示没问题,倘若windows下看log file名却显示异常,不太方便操作。
问题出在哪里
linux环境下文件名可以显示正常,比如:
device_logcat_test_192.168.2.62:5555_16411522571240500871.txt
由于基于Ethernet adb,所以ip地址后面会有:5555,问题就出在** : ** ,算是特殊字符,windows文件名带有** : ** ,会显示异常。手动改成** _ **,则文件名正常显示。
批量改名
跑完测试,先在linux环境下把文件名改了,把** : -> _ **即可。
#!/bin/bash
# rename : to _ for cts log
for f in `ls | grep :`; do echo $f | mv $f `sed 's#:#_#g'`;
done
运行一下脚本,windows看下结果,显示正常了。
扩展
顺带学习下xargs的用法:
xargs很强大的,
-n1,每次传递一个命令参数给命令行
-i,默认传递{}:管道之前的标准输出的内容,等同于-I{} or -I {},
-I replace-str,指定替换字符串,字符串在 xargs 扩展时会被替换掉比如
echo 'one two three four' | xargs -n1 | xargs -I f echo f
one
two
three
four
或者
echo 'one two three four' | xargs -n1 | xargs -I {} echo {}
one
two
three
four
参考:
[1]: Linux中批量修改文件
[2]: Linux xargs 命令
[3]: Linux shell常用脚本命令