AK2: fix section functions with "" for next-blank-line end search

This commit is contained in:
osm0sis committed 2018-03-07 14:24:39 -04:00
1 parent 55ab97f6ec
commit 07cc7c31ce
1 file changed
+25 -19
+25 -19
View File
@@ -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>