6-add-ssh-to-bootloader #20
23
setup.sh
23
setup.sh
@ -468,6 +468,29 @@ function in_file_in_array_insert_n_before_m () {
|
||||
arg_array="${2:?}"
|
||||
arg_string="${3:?}"
|
||||
arg_precede="${4:?}"
|
||||
|
||||
# Look for a line that contains in this order
|
||||
# - String "${arg_array}" and a equals sign (=), assign capture group \1
|
||||
# - Followed by as few characters as possible followed by either an
|
||||
# opening parenthesis or a space character, assign capture group \2
|
||||
# - String "${arg_precede}", capture as capture group \3
|
||||
# - Followed by either a closing parenthesis or a space which are then
|
||||
# followed by as many non-line break characters as possible, capture
|
||||
# as capture group \2
|
||||
#
|
||||
# For following example text we're assuming that:
|
||||
# - "${arg_array}" equals 'HOOKS'
|
||||
# - "${arg_precede}" equals 'filesystems'
|
||||
# - "${arg_string}" equals 'zfs'
|
||||
#
|
||||
# This finds a 'HOOKS=' array definition that contains the string
|
||||
# 'filesystems' either at the beginning of the 'HOOKS=(...)' opening
|
||||
# parenthesis, at the very end or somewhere in the middle where it may
|
||||
# be preceded or followed by one or more space characters. It saves
|
||||
# 'HOOKS=', it saves whatever precedes 'filesystems' and 'filesystems'
|
||||
# itself plus whatever comes after 'filesystems' until end of line. It
|
||||
# lastly inserts 'zfs' and a space character right in front of
|
||||
# 'filesystems'.
|
||||
sed -ri \
|
||||
-e 's'$'\x1''('"${arg_array}"'=)(.*?[( ])('"${arg_precede}"')([) ][^\r\n\f]*)'$'\x1''\1\2'"${arg_string}"' \3\4'$'\x1''g' \
|
||||
"${arg_file}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user