私はいくつかのQ &を読んでいます。 sed
を使用しているときに特殊文字が問題になることは理解していますが、パターンに存在するかどうかわからずに対処する方法はありますか?私の特定の場合にはsedで特殊文字を含む行にテキストを挿入するには?
、私はファイル(file.txt
)を持っているようには、次のとおりです。
my line 1.
my line two.
...
this is [ -f another line ]
私は、ランダムな行の末尾にテキスト(my{Text}
)を挿入しようとしています。 $LINE
はthis is [ -f another line ]
を含む行ないとき
MAX=$(wc -l < file.txt)
Q1=$(expr $MAX/4)
Q3=$((3 * $MAX/4))
LINENUMBER=$(shuf -i $Q1-$Q3 -n1)
LINE="$(head -n $LINENUMBER file.txt | tail -1)"
sed -i -e "${LINENUMBER}s~$LINE~$LINE my{Text}~g" file.txt
このコードはうまく動作します。この場合、$LINE my{Text}
は$LINE
を置き換えません。
したがって、sed
を使用してエスケープする必要のあるランダムパターンを処理するにはどうすればよいですか?
私はGNU bash 4.3.11(1)とsed(GNU sed)4.2.2を使用しています。