2011-03-31 4 views

답변

2

여기서는 sed이 가장 적합하다고 생각합니다. Windows here 용으로 다운로드 할 수 있습니다. 또한 거의 모든 텍스트 편집기에서 허용해야합니다 (그러나 대부분은 다중 GiB 범위의 파일에 잘 대처할 수 없습니다). 당신이 반 최근 윈도우 (즉, 윈도우 7)이있는 경우, 다음 PowerShell은 함께 사전 설치되어 제공, 마찬가지로

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

: sed

당신은 아마 이런 식으로 뭔가를 원하는 것입니다. 다음 한 줄짜리 라이너가 당신을 대신해 줄 것입니다 :

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

이것은 여러 파일에도 쉽게 적용 할 수 있습니다. Get-Content은 열거 자 (즉,이 파이프 라인은 파일을 읽을 때 파일에서 작동 할 수 없음)가 아니라 배열을 생성한다고 생각하기 때문에 원래 파일로 다시 출력 할 수도 있습니다. 매우 큰 파일의 경우에도 이와 비슷한 문제가 발생합니다.

+0

죄송하지만이 문제에 관해서는 완전한 멍청한 행동입니다. 당신이 sed로 작성한이 라이너 코드를 어떻게 사용합니까? – techdaemon

+0

@techdaemon : 그렇지 않습니다. PowerShell이 ​​바로 제가 작성한 것입니다. 그래도 같은 줄을 따라 작동하는'sed' 예제를 추가했습니다 (하지만 ASCII 텍스트에서만 작동합니다). 나는 주변에서'sed'을하지 않았으므로, 당장 실례를 드릴 수는 없습니다. – Joey

+0

나는 techspeak에 대해 정말로 잘 모른다. 당신은 평신도의 임기에 그것을 넣을 수 있습니까? 평균적인 컴퓨터 사용자를 의미합니다. 텍스트 파일에서 많은 특수 문자를 제거하면됩니다. 바꾸지 않고 기간, 밑줄 및 대시를 제외하고 삭제 만하면됩니다. 네가 나를 도울 수 있다면 미리 감사해. – techdaemon

1

정규식은 지원하는 모든 도구/언어로 할 수 있습니다. 여기에 Ruby for Windows 명령이 있습니다

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