2016-08-10 3 views
2

나는 여러 번 반복해야하며 매번 python으로 실행해야하는 파일이 있습니다. 쉘에서 특정 행의 문자를 제거하거나 추가하려면 어떻게합니까? 예를 들어 파일 ex.file에 대한 셸에서 지정된 줄 번호에 문자를 추가하거나 제거하는 방법은 무엇입니까?

,

$ cat ex.file 
stuff 
more stuff 
more stuff 
more stuff 
#<- remove this character 
<-add a pund sign here 
more stuff 
more stuff 

내 원하는 출력은 다음과 같습니다

sed '6 s/^/#/' ex.file 

:

$ cat ex.file 
stuff 
more stuff 
more stuff 
more stuff 
<- remove this character 
#<-add a pund sign here 
more stuff 
more stuff 

답변

3

6 행의 시작 부분에 #을 추가하려면 5 번 줄에서 선행 #을 제거하려면 다음을 수행하십시오.

sed '5 s/^#//' ex.file 
+0

어떻게하면 'ex.file'로 sed를 보낼 수 있습니까? – kilojoules

+0

@kilojoules : 편집을 참조하십시오. 'sed' 대신에'sed -i'를 사용하여 파일을 편집하거나'sed ...> newfile'과 같은 새로운 파일에 쓸 수 있습니다. –

+0

대단히 감사합니다! 'ex.file'을 어떻게 덮어 쓸 수 있습니까? – kilojoules

1

5 행에서 #을 제거하고 6 행에서 #을 추가하는 Oneliner awk 버전.

awk 'NR==5 {sub(/^#/,"") } NR==6 { sub(/^/,"#")}1' infile 
관련 문제