如何在bash中用uniq子字符串分割字符串?

问题描述 投票:0回答:1

现在我有一个字符串 str="...AAA...",我想将其拆分为 3 个子字符串变量 sub1 sub2 sub3 AAA 是 sub2 并且是一个不会出现的独特模式在 sub1 和 sub3 中。所有其他字符都保存在 sub1 和 sub3 中。只有一种极端情况是,当 sub3 需要为空字符串时,AAA 可能会出现在末尾。我怎样才能做到这一点,也许使用 grep、sed 或 gawk?

bash awk sed split grep
1个回答
0
投票

您不需要

grep
sed
awk
。只需使用 Shell 参数扩展
%
#
:

str="ABCAAAXYZ"
sub2="AAA"

sub1="${str%${sub2}*}"
sub3="${str#*${sub2}}"

printf '%s\n' "$sub1" "$sub2" "$sub3"
ABC
AAA
XYZ

这与

str="ABCAAA"
的作用相同。

© www.soinside.com 2019 - 2024. All rights reserved.