2011-03-31 39 views

回答

2

我覺得sed是這裏最容易的選擇。您可以下載它的Windows here此外,幾乎每個文本編輯器都應該允許這樣做(但大多數不能很好地處理多GiB範圍內的文件)。

隨着sed你可能想是這樣的:

sed "s/[^a-zA-Z0-9_.-]//g" file.txt 

同樣的,如果你有一個半新的Windows(即Windows 7中),然後PowerShell附帶預裝它。以下單線程將爲您做到這一點:

Get-Content file.txt | foreach { $_ -replace '[^\w\d_.-]' } | Out-File -Encoding UTF8 file.new.txt 

這也可以很容易地適應多個文件。這可能是因爲我認爲Get-Content會產生一個數組而不是枚舉器(也就是說,當您讀取該文件時,該管道無法在文件上運行),因此您也可以再次輸出到原始文件中。儘管如此,由於具有非常大的文件的類似問題。

+0

我很抱歉,但我是一個完整的小白,當談到這一點。我如何使用你用sed編寫的這一行代碼? – techdaemon 2011-03-31 08:46:23

+0

@techdaemon:你沒有。就像我寫的那樣,這就是PowerShell。不過,我添加了一個'sed'示例,它沿着相同的方向工作(但我認爲這隻適用於ASCII文本)。通常情況下,我只是沒有'sed',所以我不能馬上提供一個例子。 – Joey 2011-03-31 08:52:00

+0

我對你的技術說話不是很瞭解。你可以把它放在外行的任期嗎?我的意思是一般的電腦用戶。我只需要擺脫文本文件中的許多特殊字符。只是刪除,不能取代,但不包括週期,下劃線和短劃線。如果你能幫助我,請提前致謝。 – techdaemon 2011-03-31 08:56:47

1

你可以做正則表達式與任何工具/語言支持它。這裏有一個Ruby for Windows命令

C:\work>ruby -ne 'print $_.gsub(/[%)?\[\]*]/,"")' file