這可能是一個Sed和shell腳本語法問題以及正則表達式。 (編輯:也許一個I/O問題,因爲正則表達式讀取時使用bash shell中的文件,但實際.txt
文件並沒有改變作爲所需的工作)Sed正則表達式OSX找到羅馬數字並用空字符串替換。錯誤「未終止的替代模式」
嘗試準備一個.txt
文件對於一些自然語言處理工作。想要在包含莎士比亞的十四行詩的純文本文件中刪除一些羅馬數字,每個十四行詩以一個羅馬數字開頭,如IX.
和XVIII.
,它表示單個十四行詩的標題,包括十進制字符。
例intput文本:
XXV.
Let those who are in favour with their stars
Of public honour and proud titles boast,
希望的輸出:
Let those who are in favour with their stars
Of public honour and proud titles boast,
繼this question的例子中,我嘗試了所有在終端的bash以下命令:
$ sed -i 's/[IVXLC]{1,}[.]//g' sonnets.txt
$ sed -i 's/[IVXLC]{1,}[.]/^$/g' sonnets.txt
$ sed -i 's/[IVXLC]{1,}[.]/()/g' sonnets.txt
$ sed -i 's/[IVXLC]{1,}[.]/[]/g' sonnets.txt
當時的想法是用一個空字符串替換任何比賽。由於沒有工作,我試圖用空格字符替換匹配:
$ sed -i 's/[IVXLC]{1,}[.]/^ $/g' sonnets.txt
沒有運氣。以上所有的命令返回相同的錯誤:
sed: 1: "sonnets.txt": unterminated substitute pattern
我測試了正則表達式中的「查找」字段上https://regexr.com/,它似乎是正確的。目標文件在工作目錄中是正確的。任何想法出了什麼問題?我應該在Sed命令的「替換」字段中使用哪些字符?我應該修改正則表達式和/或Sed命令嗎?
你能粘貼示例文本嗎?什麼是輸入和你喜歡輸出的樣子。 ? –
我認爲'{'和'}'需要被轉義。 '\ {'和'\}'。方括號也可能需要不確定。 –
'{} []'在https://regexr.com/ – Elan