在UNIX中将单个字符串拆分为两个或三个变量

时间:2014-10-13 10:39:57

标签: unix

我有一个SESSION_TOKEN,它每30分钟动态生成一次。它的字符长度大于530,其中大约有536个字符。

如何在UNIX脚本中拆分此字符串。需要帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用" cut"这种固定长度工作的实用程序:

echo "AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKK" | cut -c 10-20
CCCDDDDEEEE

-c表示"按字符选择"和" 10-20"说出要选择的字符。

您也可以按字节选择(使用-b),如果您的数据有一些不寻常的编码,这可能会有所不同。

在您的情况下,您想要执行相同字符串的多个块,例如:

bradh@saxicola:~$ export somethingToChop="AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKK"
bradh@saxicola:~$ echo $somethingToChop | cut -c 1-10
AAAABBBBCC
bradh@saxicola:~$ echo $somethingToChop | cut -c 11-20
CCDDDDEEEE
bradh@saxicola:~$ echo $somethingToChop | cut -c 20-
EFFFFGGGGHHHHIIIIJJJJKKK

可能是最容易理解的。

答案 1 :(得分:1)

Bash变量扩展具有内置的子串操作:

$ string="abcdefghijklmnopqrstuvwxyz";
$ first=${string:0:8}
$ second=${string:8:8}
$ third=${string:16}

$ echo $first, $second, $third
abcdefgh, ijklmnop, qrstuvwxyz