如何使用两个字符分隔符将字符串拆分为两行

时间:2016-01-01 22:48:38

标签: regex awk split

我有很多这样的话:

<anyword1.> 1. Blablabla .> 2 blablabla .> 3 blablabla

我需要这个:

<anyword.> 1. Blablabla .> 2 blablabla .> 3 blablabla

我想到了使用“。&gt;”分为两行的分割线分离器:

A="<anyword1"
B=" 1. Blablabla .> 2 blablabla .> 3 blablabla"

然后删除A中的数字1,最后合并A“。&gt;”B

问题是我可以用awk获得A:

awk -F ".>" '{ print $1 }'

但如何获得B?有没有办法从第一个分隔符“。&gt;”拆分到字符串的末尾?

我尝试使用cut命令,但cut只允许一个字符分隔符。

PD。 “anyword”这个字符串可以有'。'这就是为什么我需要两个字符分隔符。

3 个答案:

答案 0 :(得分:3)

怎么样:

awk -F ".>" '{print $1}'
awk -F ".>" '{$1=""; print}'

? :)

答案 1 :(得分:2)

awk '/(.*?).> (.*)/ { a= $1;$1="";b=$0;print a,b}'

通过这种方式,您可以在单行中同时拥有ab

答案 2 :(得分:0)

如果我理解正确,听起来你想要的是用1.>替换每一行.>的第一次出现?如果是这样,那么你可以写:

sed 's/1[.]>/.>/'