基本的に私はこれを実行しました。
sed -i '/s/icap_infos/icap_servers/g' *
代わりに:
sed -i 's/icap_infos/icap_servers/g' *
コマンドで「s」の前にスラッシュがあることを確認してください。
今私のすべてのソースファイルには、ファイル全体に奇妙なテキスト文字列が散在しています。どうすれば解決できますか?
答え1
/s/
文字を含むすべての行に一致する正規表現アドレスs
。 GNU sedでitext
標準拡張
i\
text
それ私text
指定された行の後に挿入します。したがって、コマンドはcap_infos/icap_servers/g
すべてs
。
元のファイルにそのようなファイルがないと仮定すると、次のものを使用できます。
sed -i.old '\:^cap_infos/icap_servers/g$:d' *
到着Dエレテラインがcap_infos/icap_servers/g
正確に一致します。パターン自体にデフォルトの区切り文字が含まれているため、:
代替区切り記号(で導入)を使用することに注意してください。現在のファイルが機能していないために他のものを試す必要がある場合に備えて、サフィックスを付けてバックアップされます。\:
/
.old
将来的には、sedコマンドをドライに実行する習慣を身につけてください。いいえ -i
まず、バックアップを作成して/または-i.bak
通常の代わりに使用してください-i
。
答え2
はアドレスとして解釈されるため、/s/
次のコマンドはインクルードにのみ適用されますs
。次のコマンドは、i
次のテキストを挿入しますcap_infos/icap_servers/g
。
する必要がある3つ:
cap_infos/icap_servers/g
意図的に行のみを含めた可能性はほとんどないため、sed '/^cap_infos\/icap_servers\/g$/d'
次を使用して行を削除できます。住所何かを削除してくださいd
)- 予想される変化を生み出す
-i
後でオプションを使用する前に、常に変更を確認する方法を学びます。