여러 파일의 첫 번째 비어 있지 않은 줄 시작 부분에 #과 같은 문자를 추가하는 방법은 무엇입니까?

여러 파일의 첫 번째 비어 있지 않은 줄 시작 부분에 #과 같은 문자를 추가하는 방법은 무엇입니까?

공백이 아닌 첫 번째 줄에 주석을 달기 위해 #을 사용하고 싶은 파일이 많이 있습니다. 파일의 형식이 좋지 않으므로 주석을 달고 싶은 줄 앞에 빈 줄이 1개 이상 있을 수 있습니다. 어떤 방법으로든 할 수 있나요? 감사해요!

예로서:

파일1:

<blank Line>
this is line 1, and I want to comment.
This is line 2...

파일2:

<blank line>
<blank line>
This is line 1, and I want to comment.
This is line 2...

질문을 명확하게 설명하길 바랍니다. :)

답변1

echo -e '\n  \nfoo\nbar' | awk '!p && /[^[:blank:]]/ {$0 = "#" $0; p=1} 1'
<empty>
<space><space>      
#foo
bar

"p" == 0이고 공백이 아닌 문자가 있는 줄이 나타나면 해시를 추가하고 p=1로 설정합니다. 모든 줄을 인쇄하십시오.

답변2

OP로 sed를 사용해야 합니다.

sed ':loop;$!{N; b loop};s/^[ \t\n]*/&#/' file

테스트 파일

<empty>
<space><space>    
<tab><tab>  
foo
bar

결과

<empty>
<space><space>    
<tab><tab>  
#foo
bar

답변3

이것은 당신에게 도움이 될 수 있습니다 (GNU sed):

sed -i '/^\s*$/,/\S/{/\S/s/^/#/}' file1 file2 file....

관련 정보