2014-02-05 2 views
2

삭제해야하는 각 줄 끝에 여분의 캐럿이있는 파일이 있습니다. 이 일을하는 가장 좋은 방법은 무엇입니까? Is는 항상 삭제되어야하는 행에서 여섯 번째 캐럿입니다.파일의 각 줄에서 마지막 문자를 제거하는 가장 좋은 방법

저는 스캐너를 사용하여 각 문자를 실행 한 다음, ^를 누를 때마다 변수를 증가 시키려고했습니다. 여기에서 변수가 6으로 나눈 나머지가 0 인 경우^대신 공백을 씁니다. 필자는 원래 파일을 임시 파일로 사용하면서 쓰는 새 파일을 만들 것입니다. 이것이 좋을까요, 아니면 이것에 대해 더 좋은 방법이 있습니까?

저는 캐럿을 구분 기호로 사용하고 캐럿을 쓸시기를 결정하는 증가하는 전략을 유지할 수 있다고 생각합니다.

내가 어떤 파일의 각 줄 것 아래에 표시 한

자바 프로그램에서 방법을 통해 원본 파일에 기록되는 프로그램으로,이 돌봐 자바에서 메소드를 작성하는 것을 선호 봐.

02/03/2014^CV-13-798497^10/31/2013^N/A^SH^CUYAHOGA COUNTY SHERIFF DEPT SERVICE FEE $43.00^ 
02/03/2014^CV-13-798497^10/31/2013^N/A^CS^NO SALE FORECLOSURE CLERK FEE - $5.00^ 
02/03/2014^CV-13-798497^10/22/2013^P1^CS^FORECLOSURE PAGE COUNT^ 
+0

제목은 "마지막 문자를 제거"라고하지만, 질문에 당신이 6 캐럿을 언급. 무엇 이니? 어떤 도구를 사용할 수 있습니까? sed, 특정 편집기? – Bugs

+0

질문에 대한 매개 변수는 무엇입니까? 이것은 스크립트 (Windows 또는 Linux) 여야합니까, 아니면 프로그램에 업로드하는 데 관심이있는 내용입니까? – useSticks

+0

regex는 단순히 다음과 같을 것입니다 :'\^$' – MElliott

답변

2

자바 솔루션 :

// read file data into a String 
String data = new Scanner(new File("file.txt")).useDelimiter("\\Z").next(); 
// replace all^from end of line using (?m) - MULTILINE switch 
data = data.replaceAll("(?m)\\^$", ""); 
+0

위대한 작품! 어떻게하면 각 줄의 마지막 캐럿 만 삭제할 수 있습니까? – Ctech45

+0

그 이유는'\\^$'때문에 끝에 '^'만 발견됩니다. – anubhava

+1

굉장해, 고마워! – Ctech45

0

당신은 sed 쉽게이 작업을 수행 할 수 있습니다

sed 's/\^$//' inputfile > outputfile 
관련 문제