delete および sed コマンドの使用

delete および sed コマンドの使用

私の/etc/aliasesファイルを編集する必要がありますが、100を超えるホストに同じファイルがあるので、スクリプトを作成して実行したいと思います。いくつかのエイリアス項目があり、そのうちの1つから次のようにユーザーとカンマ区切り文字を削除したいと思います。

alias_name1:    [email protected],[email protected],[email protected]
alias_name2:    [email protected],[email protected],[email protected]

だから「取り除きたいなら、[Eメール保護]「alias_name2」の代わりに「alias_name1」にある「今持っている唯一の例は、ファイル全体からその文字列を削除するか、ファイルの特定の行からその文字列を削除するだけなので、どうすればよいですか?」動作しません。

ベストアンサー1

削除するが削除しない ",[email protected]""alias_name1""alias_name2"

sed方法:

sed -E '/^alias_name1/ s/,name2@example\.com(,?)/\1/' /etc/aliases

最初のキャプチャグループトリックは、(...)数字が行の終わりまたは中央にあるときにも機能します。,[email protected]


出力:

alias_name1:    [email protected],[email protected]
alias_name2:    [email protected],[email protected],[email protected]

おすすめ記事