したがって、次のコードがあります。
while read line
do
if [ $line = $maddr ] ;
then
sed -i '/${maddr}/d' mailinglist
found=true
break
fi
done < mailinglist
読み取った行が私の変数(文字列)と一致すると、行全体が削除されます。
動作しないときにフラグでテストしました。- X、パターンを見つけてifループに入り、sedコマンドも実行しますが、行はそのまま残ります。
(スクリプトで「メーリングリスト」ファイルを作成したので、書き込み権限がない可能性があると思いましたが、確認してみると権限があることがわかりました。基本的に何も変更していません。これについてはスクリプト権限で確認してください)。
私はsedコマンドが正しいと思います(ファイルを編集してすぐに保存する必要があります)。助けてください?
ベストアンサー1
このような仕事はうまくいきます。一重引用符の代わりに二重引用符を使用してください。私は仕事を複雑にする傾向がある。
while read line
do
if [ $line = $maddr ] ;
then
sed -i "/$maddr/d" mailinglist
found=true
break
fi
done < mailinglist