2016-01-01 228 views
1

我有很多這樣的行:如何將字符串分割成兩行有兩個字符的分隔符

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

我需要這樣的:

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

我兩個想過分割線線使用分隔符 「>。」: 「>」

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

然後取出數1 A和最後合併A B

的問題是我能得到一個使用awk:

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

可是如何才能讓B'有什麼辦法可以從第一個分隔符「。>」分割到字符串的末尾嗎?

我試過使用剪切命令,但剪切只允許一個字符分隔符。

PD。 「anyword」這個字符串可以有'。'這就是爲什麼我需要兩個字符分隔符。

+0

爲了有一個分隔符當成「點大於」而不是「任何 - 字符大於「,則必須使用-F'\\。>'或'-F」\\\\>「' - 您必須將適當數量的轉義傳遞給awk。 –

+0

@Gea - 這是一個非常奇怪的方法,而不僅僅是'sed's/1 //''或類似的方法。 –

回答

3

什麼:

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

? :)

+0

你可能想指定'-v OFS =「。>」' –

0

如果我理解正確,這聽起來像你想要的是用.>替換第一個匹配的行1.>?如果是這樣,那麼你可以這樣寫:以這種方式

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

你在單行兼得ab