2016-10-21 7 views
0

파일을 문자열로 변환하고 일부 처리를 수행하고 Linux의 bash 셸에서 파일을 다시 가져 오려고합니다. (비 파일에 존재입니다.) 주로 문자열로 파일 보내기 및 문자열로 bash로 파일 보내기

는, 목표는 파일에 존재하고 '\n'에 의해 ';'를 대체하여 파일이 향상되지 않는 ';'에 의해 새로운 라인 '\n'을 제거하는 것입니다 I가 :set list으로 파일을 검사 할 때

파일의 모든 문자를 확인하십시오. I 라인의 끝에서 $을 볼 수 있고 내가 실행하면

:%s/\n\;\g 

가 작동 대체하지만 다음

:%s/;/\n\g 

내가 새에 문자 ^@ 대신 $을 볼 수 있습니다 작동하지 않습니다 선.

쉘에서 어떻게 구현할 수 있습니까?

+2

쉘을 의미 할 경우, 가장 쉬운 방법은 개별 문자를 음역 tr을 사용하는 것입니다 네 말 뜻은? 당신은 전체 파일의 내용을 읽고, 그 끝을 조작하여 새로운 파일로 쓰고 싶습니까? 몇 가지 예를 들려주십시오. 지금까지 작성한 전체 스크립트를 포함하십시오. – GhostCat

답변

1

vim 명령 줄에 대해 생각해보십시오. :%s/\n\;\g이 작동 중일 때 매우 의심 스럽습니다.

개행 문자를 ';' 시도 : :%s/\n/;/g

마찬가지로 ';' 개행 시도 :%s/;/\r/g

\r을 사용하는 이유에 대한 명확한 설명은 here입니다.

%s의 사용은 :%s/<string_to_be_replaced>/<string_to_be_replaced_with>/g입니다.

1

정말 쉘에 대해 또는 약 vi에 대해 이야기하고 있습니까?

세미콜론으로 모든 줄 바꿈을 교체 :

tr '\n' ';' <inputFile> outputFile 

가 줄 바꿈 모든 세미콜론을 교체 : 무엇을

tr ';' '\n' <inputFile> outputFile