/替換HTML標籤我有一個包含行的文件:刪除在bash
<li><b> Some Text:</b> More Text </li>
我想用破折號刪除HTML標籤和更換</b>
標記,這樣就變成這樣:
一些文字: - 更多文字
我正在嘗試使用sed,但是我無法找到正確的正則表達式組合。
/替換HTML標籤我有一個包含行的文件:刪除在bash
<li><b> Some Text:</b> More Text </li>
我想用破折號刪除HTML標籤和更換</b>
標記,這樣就變成這樣:
一些文字: - 更多文字
我正在嘗試使用sed,但是我無法找到正確的正則表達式組合。
如果嚴格想要去除所有的HTML標籤,但在同一時間只有-
更換</b>
標籤,您可以鏈接兩個簡單的sed
命令與管道:
cat your_file | sed 's|</b>|-|g' | sed 's|<[^>]*>||g' > stripped_file
這將將所有文件的內容傳遞給第一個sed
命令,該命令將處理將</b>
替換爲-
。然後,它的輸出將被傳送到sed
,它將用空字符串替換所有HTML標記。最終輸出將被保存到新文件stripped_file
中。
使用類似的方法從@Steve對方的回答,您也可以使用sed
的-e
選項鍊表達成單一(非管道命令);加入-i
,你也可以讀入並替換原來的文件的內容,而不需要cat
,或一個新的文件:
sed -i -e 's|</b>|-|g' -e 's|<[^>]*>||g' your_file
這將做替換,就像上面的鏈接命令,但是這次它會直接替換輸入文件中的內容。要保存到新文件,請刪除-i
並將> stripped_file
添加到最後(或您選擇的任何文件名)。使用GNU sed
方式一:
sed -e 's/<\/b>/-/g' -e 's/<[^>]*>//g' file.txt
例子:
echo "<li><b> Some Text:</b> More Text </li>" | sed -e 's/<\/b>/-/g' -e 's/<[^>]*>//g'
結果:
Some Text:- More Text
幫我修復與'變量= 「X」'型文本一些XML文件。使用's /'variable =''[^ \「] * \」//'來匹配標籤名稱和下兩個雙引號之間的所有內容(忽略單引號和轉義雙引號的混合) – cde
推薦cat | sed | sed',然後順便提一句,實際上你所需要的只是'sed'似乎誤導了你。「你也可以」只是不建議有缺陷的方法。 – tripleee