xxxxxxxxxx
$ echo test | sed 's/test/line\
> line'
line
line
xxxxxxxxxx
echo ${DATA} > temp.txt
sed -i -e "/_data_/r temp.txt" -e "//d" mail.tpl
xxxxxxxxxx
wget -O metallb-values.yml https://raw.githubusercontent.com/bitnami/charts/master/bitnami/metallb/values.yaml
cat > /tmp/0 <<EOF
configInline:
# The address-pools section lists the IP addresses that MetalLB is
# allowed to allocate, along with settings for how to advertise
# those addresses over BGP once assigned. You can have as many
# address pools as you want.
address-pools:
- # A name for the address pool. Services can request allocation
# from a specific address pool using this name, by listing this
# name under the 'metallb.universe.tf/address-pool' annotation.
name: generic-cluster-pool
# Protocol can be used to select how the announcement is done.
# Supported values are bgp and layer2.
protocol: layer2
# A list of IP address ranges over which MetalLB has
# authority. You can list multiple ranges in a single pool, they
# will all share the same settings. Each range can be either a
# CIDR prefix, or an explicit start-end range of IPs.
addresses:
- 192.xxx.xxx.xx1-192.xxx.xxx.xx5
EOF
sed -i -e "/configInline: {}/r /tmp/0" -e "//d" metallb-values.yml
xxxxxxxxxx
DATA="$(cat whatever)"
ESCAPED_DATA="$(echo "${DATA}" | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/\$/\\$/g')"
Then you can use ${ESCAPED_DATA} in sed:
cat input | sed 's/one liner/'"${ESCAPED_DATA}"'/' > output
xxxxxxxxxx
DATA="a
b
c"
ESCAPED=$(echo "${DATA}" | sed '$!s@$@\\@g')
echo "${ESCAPED}"
a\
b\
c
sed "s/pattern/${ESCAPED}/" file
xxxxxxxxxx
user@Mint:~/Desktop/sedtest$cat > file
*some code*
*some code*
string_to_replace
*some code*
user@Mint:~/Desktop/sedtest$new_string="line number 1\nline number 2\nline number 3"
user@Mint:~/Desktop/sedtest$ sed -i "s/string_to_replace/$new_string/" file
user@Mint:~/Desktop/sedtest$cat file
*some code*
*some code*
line number 1
line number 2
line number 3
*some code*
user@Mint:~/Desktop/sedtest$