2017-01-31 2 views
0

파일 내의 'HEADER'텍스트를 제어 문자 새 페이지 (FF - 16 진수 값 = C)로 바꾸려고합니다.제어 문자를 JREPL.bat으로 바꿉니다.

sed -I "s/HEADER/\xC/g" c:\myfile.txt 

내가 JREPL.BAT를 사용하여이 작업을 수행 할 수 있도록하려면 : 아래 그림과 같이 나는이 사용 SED을 할 수 있었다. 내가 jrepl 함께하고 싶은 이유를

c:\jrepl "HEADER" "\xC" /f myfile.txt /o - 
c:\jrepl "HEADER" "\xC" /x /f myfile.txt /o - 

이유는 결국 스크립트를 실행해야합니다 모든 사람의 컴퓨터에 SED를 설치하지 않도록하는 것입니다 : 내가 성공하지 않고 다음 시도합니다. 이 방법에 대한 아이디어가 있으십니까?

+2

'C' = 4bits '\ x0C'로 해 보셨습니까? –

+0

나는 아래와 같이 행운이 아니라 그것을 시도했다. 내가 그것을 실행할 때 \ x0C 파일로 문자열 'HEADER'를 대체한다는 것입니다. – Ezy

+0

c : \ jrepl "HEADER"\ x0C/f myfile.txt/o - – Ezy

답변

1

이처럼 간단한 교체를 수행하기 위해 수백 줄의 배치 파일이 필요하지 않습니다. 두 라인의 배치 파일은 다음과 같은 작업을 수행합니다

@set @a=0 // & cscript //nologo //E:JScript "%~F0" <myfile.txt> out.txt & move /Y out.txt myfile.txt & goto :EOF 

WScript.Stdout.Write(WScript.Stdin.ReadAll().replace(/HEADER/g,"\x0C")); 

정규 표현식 구문의 추가 설명은 this page를 참조하십시오.

EDIT 쉽게이 프로그램을 테스트하기 위해,이 방법으로 수정할 수 있습니다에서

: 다음

@set @a=0 /* 
cscript //nologo //E:JScript "%~F0" <myfile.txt> out.txt 
move /Y out.txt myfile.txt 
goto :EOF */ 

WScript.Stdout.Write(WScript.Stdin.ReadAll().replace(/HEADER/g,"\x0C")); 

을 명령 프롬프트 세션을 열고 명령 줄에서 실행 화면에 오류 메시지가 나타나는지 확인하십시오. 예 :

C:>\Users\Antonio\test type myfile.txt 
This is a data line 
HEADER This is the first line at top of page 
This is more data line 


C:>\Users\Antonio\test test.bat 

C:>\Users\Antonio\test cscript //nologo //E:JScript "C:\Users\Antonio\test\test.bat" 0<myfile.txt 1>out.txt 

C:>\Users\Antonio\test move /Y out.txt myfile.txt 
Se han movido   1 archivos. 

C:>\Users\Antonio\test goto :EOF */ 


C:>\Users\Antonio\test type myfile.txt 
This is a data line 
♀ This is the first line at top of page 
This is more data line 
+0

Aacini, 내가 잘못하고있는 것이 확실하지 않습니다. myfile.txt가있는 동일한 디렉토리에 배치 파일에이 두 줄의 코드를 넣었습니다. 작동하지 않는 것처럼 다른 것을 변경해야하는지 잘 모르겠습니다. – Ezy

+0

내 대답은 편집을 참조하십시오. 나는 "똑같은 것 같지 않다"는 이유 때문에 화면에 나타나는 오류를보고 정확히보고 싶습니다. – Aacini

+0

Excellent Aacini, It worked! 이것은 JREPL.bat와 같은 일을하는 좋은 방법이지만 실행 파일을 호출 할 필요는 없습니다. 고맙습니다. – Ezy

관련 문제