
공백이 아닌 첫 번째 줄에 주석을 달기 위해 #을 사용하고 싶은 파일이 많이 있습니다. 파일의 형식이 좋지 않으므로 주석을 달고 싶은 줄 앞에 빈 줄이 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....