![텍스트를 읽고 #으로 시작하는 줄(즉, 주석 줄)을 만나는 awk를 어떻게 작성합니까?](https://linux55.com/image/153102/%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A5%BC%20%EC%9D%BD%EA%B3%A0%20%23%EC%9C%BC%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EC%A4%84(%EC%A6%89%2C%20%EC%A3%BC%EC%84%9D%20%EC%A4%84)%EC%9D%84%20%EB%A7%8C%EB%82%98%EB%8A%94%20awk%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9E%91%EC%84%B1%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
단락이 끝날 때까지 각 후속 줄의 시작 부분에 # 뒤에 공백이 추가됩니다(단락은 빈 줄로 구분됩니다). 이미 #으로 시작하는 줄은 수정되지 않습니다. 예를 들어 다음 입력은 수정되지 않습니다.
a b c
d e f
# g h i
j k l
m n o
p q r
s t u
# v w x
# y z 1
2 3 4
# 5 6 7
8 9 0
으로 수정됩니다
a b c
d e f
# g h i
# j k l
# m n o
p q r
s t u
# v w x
# y z 1
# 2 3 4
# 5 6 7
# 8 9 0
답변1
이 시도,
awk '/^$/{comm=0}{if($1~/^#/){comm=1}else{if(comm){$1="# "$1}} print}' file
또는 동일한 내용의 긴 형식:
awk '
# reset on empty line
/^$/{comm=0}
{
if ($1~/^#/) {
# start commenting lines when # found
comm=1
}
else {
# comment lines not starting with #
if (comm){ $1="# "$1 }
}
print
}
' file