![パスに多くの追加文字を持つsedを使用するには? [コピー]](https://linux33.com/image/98158/%E3%83%91%E3%82%B9%E3%81%AB%E5%A4%9A%E3%81%8F%E3%81%AE%E8%BF%BD%E5%8A%A0%E6%96%87%E5%AD%97%E3%82%92%E6%8C%81%E3%81%A4sed%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
sed
以下の括弧内の例の行全体を変更できますか?/
置き換えたい実際の行に他の特殊文字がたくさんあるため、使用する区切り文字を見つけるのが難しいようです。
交換する必要があるライン:
私が使用したい実際の線は目にあまり慣れていないので、これはランダムな例です。
[...]
<example>=(a,b,c);{!@#$%^&*?/};</example>
[...]
これに適したツールがあれば教えてください。どんな助けでも大変感謝します。
答え1
変えたいならみんなOK、同様の方法で簡単な解決策を使用できますこの回答。
これはあなたのラインです:
<example>=(a,b,c);{!@#$%^&*?/};</example>
回避策は、ファイルの残りの部分よりも先にこの行を印刷してから、Sedを使用して最初の行と正確に一致する行を変更することです。
{ printf '%s\n' '<example>=(a,b,c);{!@#$%^&*?/};</example>'; cat somefile;} |
sed -e '1h;1d;G;s/^\(.*\)\n\1$/text to change to/;t' -e 's/\n.*$//'
しかし - 学ばなければならないSed正規表現でエスケープする必要がある文字、でも。