2014-03-02 1 views
0

텍스트 파일의 특정 줄을 변경하고 싶습니다.텍스트 파일을 편집하여 특정 줄 번호의 내용을 변경하십시오.

나는이

perl -p -i -e "s/JAI/ramkrishna/ if $. == 37" test.tex 

으로 시도했지만 그것은 단지 JAI을 삭제하지만 ramkrishna를 작성하지 않습니다.

+1

질문에 대한 입력을 추가하는 것을 고려에 파일을 변경 즉,'echo "abcJAIxyx"| perl -i ...'그 일은 어떻게됩니까? 행운을 빕니다. – shellter

+2

이 저에게 효과적입니다 :'{seq 36; 에코 안녕 JAI 세상; } | perl -p -e "/ JAI/ramkrishna/if $. == 37"'- 당신은 JAI가 37 행에 나타날 것을 확신합니까? 'perl -ne '을 출력해라. "$. $ _"'test.tex' –

+0

여전히 작동하지 않고 윈도우에 파일을 만들고 Unix/Linix로 옮긴다면'\ r \ n' 라인 엔딩이 필요하며, 리눅스가 사용하는'\ n' 라인 엔딩 (line ending)에 적용될 필요가있다. 'dos2unix test.tex'가이를 수정합니다. 행운을 빕니다. – shellter

답변

1

귀하의 명령은 정상적으로 작동합니다. 줄 번호가 틀렸나 보지? 그것은 우리를 위해 쉽게 있도록이

aa 
bb 
cc 
aa bb cc JAI dd ee ff 
bb 
cc 
aa bb cc JAI dd ee ff 
xx 
yy 
zz 

같은 test.tex 파일 명령

perl -p -i -e 's/JAI/ramkrishna/ if $. == 7' test.tex 

aa 
bb 
cc 
aa bb cc JAI dd ee ff 
bb 
cc 
aa bb cc ramkrishna dd ee ff 
xx 
yy 
zz 
+0

감사합니다. 그 일. 그 때 나는 더러운 것을하고 있었다. – ramkrishna

+0

이제 count = 7 perl -p -i -e 's/JAI/ramkrishna/if $와 같은 사용자 입력으로 줄 번호를 변경하고 싶습니다. == $ count 'test.tex 하지만 작동하지 않습니다. – ramkrishna

+0

@ramkrishna : 어떻게 '카운트'를 설정 하시겠습니까? 환경 변수입니까? '% ENV'를 통해 액세스 할 수 있습니다. 'count = 7 perl -e'print $ ENV {COUNT} ''를 시도해보십시오. – Borodin

1
sed '37s/JAI/ramkrishna/' filename 
+0

감사. 그 일. 이제 count = 7 sed '('$ count ') s/JAI/ramkrishna /'파일 이름 과 같은 사용자 입력으로 행 번호를 변경하고 싶습니다. 그러나 작동하지 않습니다. – ramkrishna