段落が終わるまで、後続の各行の先頭に#の後にスペースが追加されます(段落は空行で区切られます)。すでに#で始まる行は変更されません。たとえば、次の入力は変更されません。
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