sedでバックスラッシュを使用する方法は?

sedでバックスラッシュを使用する方法は?

sedを介してテキストファイルにいくつかの単語を挿入しようとしています。

問題は、いくつかの単語に次の文字列があることです。

 -sv /

だから下から見つけて-sv /挿入したいです。-ALLOWTEXT /-sv /

だから私は使用しました

find . -name "main.v" -exec sed -i '/-sv //a -ALLOWTEXT \\n' "{}" \;

以下のようにエラーが発生します。

sed: -e expression #1, char 7: unknown command: `/'

編集:タイプミスがあるので申し訳ありません。 -sv /は-sv \でなければなりません。

下で見つけて-sv \挿入したいです。だから私は走る-ALLOWTEXT \-sv \

  find . -name "main.v" -exec  sed -i '/-sv \//a -ALLOWTEXT \//' {} \;

素晴らしい答えを引用することによって。

だとしたら大丈夫です。 ;)

ベストアンサー1

テキストを含む特定のファイルの場合:

-sv /

その下に次のテキストを含む行を挿入します。

 -ALLOWTEXT /

GNUを使用するとsed

$ cat input.txt
-sv /
$ sed '/-sv \//a -ALLOWTEXT /' input.txt
-sv /
-ALLOWTEXT /

/sは特殊文字なので、探してsedいるテキストにsが表示されたら、前のsを使用してエスケープする必要があります\

おすすめ記事