source、correct、wrong、not_foundの4つのファイルがあります。私はbashにスクリプトを書こうとしています。ここで、sourceという名前のファイルから各行を読み込み、変数xとしてその行を格納し、それを条件と照合します。Bash:変数に一致するファイルから行を削除する
もし私が正しい名前のファイルにその行を書き込む必要がありますが、キャッチが正しく書かれる前に変数xが現在ファイルに存在するかどうかをチェックする必要があります。正しい名前のファイルに行を追加します。
私は以下試してみましたが、それは、ファイルを修正していないし、どちらも私に任意の出力を与えていない:
sed -i '/$x/d' ./wrong
私はあなたが 'send'ではなく' sed'を意味すると思います。一重引用符を使用すると展開されないので、実際にはその変数の内容ではなく '$ x'(文字通り)を検索しています。 'sed -i"/$ x/d "/ wrong" –
エラーを指摘してくれてありがとう。実際には私のiPadは自動修正を行っていた。私は今、エラーを修正しました。 –
'sed'はファイルを変更しません。標準入力から読み込み、標準出力に書き込みます。結果をどこかに置き、元のファイルに置き換える必要があります。 'sed -i '/ $ x/d' ./wrong> ./wrong.new && mv ./wrong ./wrong.old && mv ./wrong.new。/ wrong'(もしあなたが古いもののコピー)。 – fernand0