我有以下字符串:
col1|col2|col3+++++++++++A|1|a B|2|b C|3|c D|4|d (3 rows)
我想分割此字符串,以便从头开始删除字符串,直到最后一个+符号,然后删除尾端(XYZ行)
所以字符串变成了A|1|a B|2|b C|3|c D|4|d
现在,我想把这个字符串分成多个看起来像这样的数组
A 1 a
B 2 b
C 3 c
D 4 d
这样我就可以使用for循环遍历每一行进行一些处理。
如何使用sed或grep执行此操作?
我第一次尝试了这个,但是没有用
echo $string | sed 's/([0-9])rows//' | sed 's/[^+]//'
但这没用。
通过bash中的变量扩展:
str="col1|col2|col3+++++++++++A|1|a B|2|b C|3|c D|4|d (3 rows)"
str=${str% (*}
str=${str##*+}
str=${str// /
}
str=${str//|/ }
或通过sed
sed 's/.*+\(.*\S\)\s\+(.*/\1/;y/ |/\n /' <<\eof
col1|col2|col3+++++++++++A|1|a B|2|b C|3|c D|4|d (3 rows)
eof
A 1 a
B 2 b
C 3 c
D 4 d
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句