怠惰な方法

怠惰な方法

以前にインスタンスがない場合は、abcすべてのインスタンスを置き換えたいと思います。123https://

パスワード:

file=Data.txt
Initial="# Start";
orig="abc";
new="123"; 

Final="$" # Line Number
sed -r -e "/${Initial}/,${Final}s/${orig}/${new}/g" ${file} # Final doesn't accept $

データ:

# Start

abc.md
https://abc.md
The path is https://abc.md for abc.md
The path for abc.md is https://abc.md 

予想出力:

# Start

123.md
https://abc.md
The path is https://abc.md for 123.md
The path for 123.md is https://abc.md 

この目標をどのように達成できますか?


注:また、2つの間にパターンがある可能性があることを示すために${Initial}andを使用する必要があります。${Final}

この回答この事件には該当しないThe path is: https://abc.md abc.md

ベストアンサー1

あなたが探しているもの否定的に後ろを振り返って、サポートされていないsedawkサポートされていません。たとえば、次のことをお勧めしますperl

file=Data.txt
export Initial="# Start"
export orig="abc"
export new="123"
export Final="5"

perl -pe '
 $flag=1 if /$ENV{Initial}/;
 s,(?<!https://)$ENV{orig},$ENV{new},g if $flag;
 $flag=0 if $. == $ENV{Final};
' $file

おすすめ記事