Sed - 変数を使用して複数の特殊文字を含む行を削除する


2

次のファイルがあります。

  • test.txt

を含む:

3;/var/tmp/test.mp4
3;/var/tmp/test2.mp4
1;/var/tmp/test3.mp4

たとえば、削除する必要があります」 3; /var/tmp/test2.mp4 msgstr "変数を使っています。

string="3;/var/tmp/test2.mp4"
sed -i '#$string#d' test.txt

エラーをスローしませんが、行を削除できないようです... 任意の助けがいただければ幸いです。

ありがとうございます。

回答:


3

異なる場合は、最初の区切り文字をエスケープする必要があります。 / アドレスに。

また、変数を使用する場合は、それらをシェルに公開する必要があります(空白の問題を回避するために二重引用符を使用)。

sed -i "\#$string#d" test.txt

または

sed -i '\#'"$string"'#d' test.txt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.