
我想刪除像這樣的字串模式
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(我對這兩者都沒有足夠的了解來提供程式碼建議)。