여러 파일에서 정규식을 찾고 바꾸는 가장 좋은 도구는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/102083

  •  01-07-2019
  •  | 
  •  

문제

가능하다면 무료 도구를 사용하는 것이 좋습니다.

또한 여러 정규식을 검색하고 각각을 다른 문자열로 바꾸는 옵션은 보너스입니다.

도움이 되었습니까?

해결책

펄.진지하게, 시스템 관리 작업이 훨씬 쉬워졌습니다.예는 다음과 같습니다.

perl -pi -e 's/something/somethingelse/g' *.log

다른 팁

sed는 빠르고 쉽습니다.

sed -e "s/pattern/result/" <file list>

find로 참여할 수도 있습니다:

find <other find args> -exec sed -e "s/pattern/result/" "{}" ";"

텍스트 패드 Windows에서 잘 작동합니다.그리고 그것은 또한 매우 훌륭한 편집자입니다.

이를 위해 Windows용 무료 명령줄 도구를 작성했습니다.그것은 ~라고 불린다 rxrepl, 유니코드 및 파일 검색을 지원합니다.어떤 사람들은 그것이 유용하다고 생각할 수도 있습니다.

당연히 Perl은 괜찮은 쉘과 함께 이것을 처리하는 훌륭한 작업을 수행합니다.

for file in @filelist ; do
  perl -p -i -e "s/pattern/result/g" $file
done

이는 다음과 같은 효과를 가지지만 더 효율적이고 경쟁 조건이 없습니다.

for file in @filelist ; do
  cat $file | sed "s/pattern/result/" > /tmp/newfile
  mv /tmp/newfile $file
done

Emacs의 디렉토리 편집기에는 표시된 파일 세트에 대해 정규식을 검색하고 바꾸는 `dired-do-query-replace-regexp' 기능이 있습니다.

Windows에서는 내가 좋아했던 WinGrep

우분투에서는 Regxxer를 사용합니다.

Windows에서 여러 파일 찾기 및 바꾸기를 위해 찾았습니다. rx찾기 매우 도움이 될 것입니다.

Mac OS X의 경우 TextWrangler가 해당 작업을 수행합니다.

제가 개인적으로 가장 좋아하는 것은 파워그렙 JGSoft.이는 다음과 인터페이스합니다. RegexBuddy 정규식을 생성 및 테스트하는 데 도움이 되고, 모든 변경 사항을 자동으로 백업하고 실행 취소 기능을 제공하며, 여러 디렉터리를 구문 분석하는 기능(파일 이름 패턴 포함)을 제공하고 Microsoft Word, Excel 및 Microsoft Word와 같은 파일 형식도 지원합니다. PDF.

PowerGrep Screenshot

나는 bash + find + sed로 갈 것입니다.

Vim이 구조를 도와주었습니다(그리고 대통령 ;-) ).노력하다:

vim -c "argdo! s:foo:bar:gci" <list_of_files>

(저는 Vim의 -c 스위치를 정말 좋아합니다. 정말 마법 같아요.또는 이미 Vim을 사용하고 파일을 열었다면 다음과 같습니다:

vim <list_of_files>

그냥 발행하세요:

:bufdo! s:foo:bar:gci

물론 sed 그리고 perl 능력도 있고.HTH.

나는 Unix와 Ubuntu의 사치를 누리고 있습니다.둘 다에서 나는 둔한 사람 한 줄씩 검색하고 교체해야 하는 모든 작업, 특히 하위 문자열에 대한 한 줄씩 검색하는 경우.최근 Ubuntu의 수백 개의 파일 (1 개의 디렉토리)에서 수백만 행에 대해 1100 개의 변경 사항을 처리하는 데 가장 빠릅니다.

 sudo apt-get install regexxer

Windows에는 가장 잘 작동하는 무료 대안이 있습니다.메모장++

"검색" -> "파일에서 찾기"로 이동하세요.디렉토리, 파일 패턴을 제공하고 정규식을 설정한 다음 일치 항목을 미리 보고 마지막으로 모든 파일을 재귀적으로 바꿀 수 있습니다.

나는 이 도구를 좋아한다:

http://www.abareplace.com/

정규식을 "입력하는 동안" 미리보기를 제공합니다...RE에 대해 잘 모르는 사람들에게는 환상적입니다...그리고 한 번에 수백 또는 수천 개의 파일을 변경하는 속도가 매우 빠릅니다.

그런 다음 변경 사항도 취소해 보겠습니다.

아주 좋은데...

패트릭 스틸 -http://www.podiotools.com

'textpad'가 유효한 답변이라면 제안하겠습니다. 숭고한 텍스트 손을 아래로.

다중 커서 편집은 일반적으로 대체를 수행하는 훨씬 더 효율적인 방법이지만 "파일에서 찾기"는 대량 정규식/일반 찾기 대체 항목의 최상위 계층입니다.

jEdit파일의 정규식 검색 및 바꾸기는 꽤 괜찮습니다.하지만 그 용도로만 사용한다면 약간 과잉입니다.또한 요청한 다중 표현식 대체도 지원하지 않습니다.

도구를 찾았어요 수신찾기 유용합니다(무료 OSS).

괄호 (소스 코드, deb/Ubuntu, OSx 및 Windows)에는 결과가 잘 시각화되어 대체를 적용하기 위해 개별적으로 선택할 수 있습니다.표준 텍스트, 대소문자 구분 여부, 정규식을 기준으로 검색할 수 있습니다.매우 중요:검색에서 파일 및 디렉터리 패턴을 제외할 수 있습니다.

적어도 25년 동안 나는 많은 수의 파일에 대한 대규모 교체를 위해 Emacs를 사용해 왔습니다.달리다 etags 검색할 파일 세트를 지정하려면 다음을 수행하십시오.

$ etags file1.txt file2.md dir1/*.yml dir2/*.json dir3/*.md

그런 다음 Emacs를 열고 실행하십시오. tags-query-replace, 정규식 및 교체를 묻는 메시지가 표시됩니다.

\b\(foo\)\b
\1bar
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top