AK2: fix section functions with "" for next-blank-line end search
This commit is contained in:
1 file changed
+25
-19
+25
-19
@@ -353,32 +353,38 @@ replace_string() {
|
|||||||
# replace_section <file> <begin search string> <end search string> <replacement string>
|
# replace_section <file> <begin search string> <end search string> <replacement string>
|
||||||
replace_section() {
|
replace_section() {
|
||||||
begin=`grep -n "$2" $1 | head -n1 | cut -d: -f1`;
|
begin=`grep -n "$2" $1 | head -n1 | cut -d: -f1`;
|
||||||
for end in `grep -n "$3" $1 | cut -d: -f1`; do
|
if [ "$begin" ]; then
|
||||||
if [ "$begin" -a "$end" ] && [ "$begin" -lt "$end" ]; then
|
test "$3" == " " -o -z "$3" && endstr='^$' || endstr="$3";
|
||||||
if [ "$3" == " " -o -z "$3" ]; then
|
for end in `grep -n "$endstr" $1 | cut -d: -f1`; do
|
||||||
sed -i "/${2//\//\\/}/,/^\s*$/d" $1;
|
if [ "$end" ] && [ "$begin" -lt "$end" ]; then
|
||||||
else
|
if [ "$3" == " " -o -z "$3" ]; then
|
||||||
sed -i "/${2//\//\\/}/,/${3//\//\\/}/d" $1;
|
sed -i "/${2//\//\\/}/,/^\s*$/d" $1;
|
||||||
|
else
|
||||||
|
sed -i "/${2//\//\\/}/,/${3//\//\\/}/d" $1;
|
||||||
|
fi;
|
||||||
|
sed -i "${begin}s;^;${4}\n;" $1;
|
||||||
|
break;
|
||||||
fi;
|
fi;
|
||||||
sed -i "${begin}s;^;${4}\n;" $1;
|
done;
|
||||||
break;
|
fi;
|
||||||
fi;
|
|
||||||
done;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# remove_section <file> <begin search string> <end search string>
|
# remove_section <file> <begin search string> <end search string>
|
||||||
remove_section() {
|
remove_section() {
|
||||||
begin=`grep -n "$2" $1 | head -n1 | cut -d: -f1`;
|
begin=`grep -n "$2" $1 | head -n1 | cut -d: -f1`;
|
||||||
for end in `grep -n "$3" $1 | cut -d: -f1`; do
|
if [ "$begin" ]; then
|
||||||
if [ "$begin" -a "$end" ] && [ "$begin" -lt "$end" ]; then
|
test "$3" == " " -o -z "$3" && endstr='^$' || endstr="$3";
|
||||||
if [ "$3" == " " -o -z "$3" ]; then
|
for end in `grep -n "$endstr" $1 | cut -d: -f1`; do
|
||||||
sed -i "/${2//\//\\/}/,/^\s*$/d" $1;
|
if [ "$end" ] && [ "$begin" -lt "$end" ]; then
|
||||||
else
|
if [ "$3" == " " -o -z "$3" ]; then
|
||||||
sed -i "/${2//\//\\/}/,/${3//\//\\/}/d" $1;
|
sed -i "/${2//\//\\/}/,/^\s*$/d" $1;
|
||||||
|
else
|
||||||
|
sed -i "/${2//\//\\/}/,/${3//\//\\/}/d" $1;
|
||||||
|
fi;
|
||||||
|
break;
|
||||||
fi;
|
fi;
|
||||||
break;
|
done;
|
||||||
fi;
|
fi;
|
||||||
done;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# insert_line <file> <if search string> <before|after> <line match string> <inserted line>
|
# insert_line <file> <if search string> <before|after> <line match string> <inserted line>
|
||||||
|
|||||||
Reference in new issue
Block a user