如何使用linux終端刪除字串模式?

如何使用linux終端刪除字串模式?

我想刪除像這樣的字串模式

You should not remove this /*This is the part should remove*/ You
should not remove this

我想刪除/*和內的所有文字*/

答案1

為了「授人以魚」與「授人以魚」的興趣,我將向您連結到有關正規表示式的教學。 正規表示式.info/quickstart.html

如果您需要快速解決方案,請執行以下操作:在 vim 中開啟文件,然後輸入以下內容:

:s/\/\*.*?\*\/ /g

這應該用空格替換所有以 /* 開頭和 */ 結尾的字串。我首先將您連結到正規表示式教程,以防我破壞了我編寫的表達式。要么閱讀教程並編寫自己的命令,要么在使用上面的行之前進行備份。

答案2

試試以下快速但骯髒的 sed 行:

sed -e 's@/\*.*\*/@@' file

這將向您顯示輸出,但不會實際修改文件,一旦您運行它並確認它進行了您想要的更改,然後放在-i之前-e告訴它更改文件到位。

它實際上所做的是獲取/*和之間的所有內容*/,並用任何內容替換它(本質上是刪除它),但它也會獲得/*和部分。*/

我首先為您提供非修改方法,以防萬一我破壞了我的正則表達式(耗盡內存,並且無法在當前計算機上訪問 sed 來快速測試)。另請注意,如果要刪除交叉行的文本,這將不起作用,因為 sed 單獨處理每一行。如果您需要一個程式同時處理多行文本,您將需要 awk 或可能需要 perl(我對這兩者都沒有足夠的了解來提供程式碼建議)。

相關內容