2011-08-18 101 views
0

我正在嘗試編寫sed腳本來將LaTeX編碼表轉換爲製表符分隔表。我怎樣才能讓sed刪除``後跟任何東西?

爲此,我需要將&轉換爲\t並刪除之前有\的任何內容。

這是我到目前爲止有:

s/&/\t/g 
s/\*/" "/g 

第一行按預期工作。在第二行中,我嘗試用空格替換\後面的任何內容,但不會改變其中包含\的行。

任何建議表示讚賞。另外,你能簡單解釋一下建議的腳本「說」什麼嗎?我是sed的新手,這對學習過程非常有幫助!

感謝

回答

2

假設你正在運行此作爲sed腳本,並在命令行中沒有直接:

s/\\.*/ /g 

說明:

\\ - 雙反斜線匹配一個反斜槓(單個\被解釋爲「逃避以下字符」,後跟.*.) - 匹配任何單個字符,* - 任意多次S)。

+0

完美! (並感謝解釋) – KennyPeanuts

1

您需要轉義反斜槓,因爲它是一個特殊字符。
如果您想表示您需要使用「任何字符」。 (一期)

第二表達應該是:

s/\\.//g 

我希望我理解你的意圖,你想,如果你想刪除所有字符反斜槓之後剝離的字符, 在反斜槓後添加一個星號(*) 。