我正在使用sed命令將一些文本轉換爲另一個文本。在下一行使用sed進行排除
貓文字
<strong>ABC
</strong>
Commnad:
sed -e 's|<strong>(.*?)</strong>|//textbf{1}|g'
預期的結果:\ textbf {ABC}
,但使用上面的腳本我不能將其轉換爲預期產出,因爲有新線標籤之間。如何處理這種情況?
我正在使用sed命令將一些文本轉換爲另一個文本。在下一行使用sed進行排除
貓文字
<strong>ABC
</strong>
Commnad:
sed -e 's|<strong>(.*?)</strong>|//textbf{1}|g'
預期的結果:\ textbf {ABC}
,但使用上面的腳本我不能將其轉換爲預期產出,因爲有新線標籤之間。如何處理這種情況?
這可能爲你工作(GNU SED):
sed -r '$!N;s|(<)(strong>)([^\n]*)\n\s*\1/\2|//textbf{\3}|;P;D' file
或
sed '$!N;s|\(<\)\(strong>\)\([^\n]*\)\n\s*\1/\2|//textbf{\3}|;P;D' file
我強有較強的BR與像<強> ABC中風< BR/> < /強>,im有點困惑,因爲它是嵌套使用上述。 – Manish
sed -e 'N;s|<strong>\(.*\?\)\n</strong>|\/textbf{\1}|g'
正如CodeGnome和David Ravetti所說,N標誌允許多行模式。
使用'N'或'N'建立與SED多行的模式空間。 –
我使用了sed -ne的| <strong>(。*?)</strong > | // textbf {1} | g'text但我沒有輸出。 – Manish
不是'-n','N'在sed命令中。以下是有關在sed中使用多行的詳細信息的鏈接:http://www.grymoire.com/Unix/Sed.html#uh-51 –