次のテキストがあるとしますMy name is #1#!
。
#1#
間に何があるかによって異なるものに変えたいです#
。たとえば、次のようになります。
if [ $thing_between_hash -eq 1 ]; then
subs=John
else
subs=Mary
fi
その後、出力は次のようになります。
My name is John!
一度だけ交換できますかsed
?どのように?
ベストアンサー1
次の機能をサポートするsedを使用してください-r
。
sed -r -e 's/#1#/John/g; s/#[^#]+#/Mary/g' <<< 'My name is #1#, not #5#!'
それ以外の場合:
sed -e 's/#1#/John/g; s/#[^#][^#]*#/Mary/g' <<< 'My name is #1#, not #5#!'