用前4个字符串交换前4个字符的最佳方法是什么?

use*_*884 0 string bash swap

将前4个字符与最后4个字符串交换的方式是什么?

例如,我有字符串20140613,我想将其转换为06132014.

Eta*_*ner 8

$ f=20140613
$ g=${f#????}${f%????}
$ echo $g
06132014
Run Code Online (Sandbox Code Playgroud)

对于处理较长的字符串,需要类似以下内容.(灵感来自konsolebox的答案.)

echo ${f:(-4)}${f:4:${#f} - 8}${f:0:4}
Run Code Online (Sandbox Code Playgroud)

  • @ user3388884:是的,它被称为"参数扩展",这里是它的权威参考:http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02 (2认同)