我想删除linux中文件名的第一个分隔符。例如,
$ ls my_directory a.b.c.txt a.b.d.txt a.b.e.txt
我希望它像这样:
$ ls my_directory ab.c.txt ab.d.txt ab.e.txt
我试过:
$ mv a.b* ab*
,但不幸的是这不起作用。我该怎么办?先谢谢你。
xzv2uavs1#
如果使用的是Bash,请使用replace once参数扩展方法:
for f in a.b*; do mv -i -- "$f" "${f/.}" done
参见Shell Parameter Expansion。如果您使用的是POSIX shell,则可以使用${f%%.*}${f#*.},或者在已知前缀(如a.b)的情况下,可以简单地使用ab${f#a.b}。
${f%%.*}${f#*.}
a.b
ab${f#a.b}
1条答案
按热度按时间xzv2uavs1#
如果使用的是Bash,请使用replace once参数扩展方法:
参见Shell Parameter Expansion。
如果您使用的是POSIX shell,则可以使用
${f%%.*}${f#*.}
,或者在已知前缀(如a.b
)的情况下,可以简单地使用ab${f#a.b}
。