最後のスペースの後ろのパターンの検索と置換

最後のスペースの後ろのパターンの検索と置換

最後のスペースの後に一致するパターンを置き換える必要があります。次のSSH証明書ファイルがあります。

[email protected] AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgePsBdieYnkI6dvMLG5qAl+UnOXo8mV0JmthWTNZ7+REAAAADAQABAAABAQC0aFhFni8pfoRiwt5O1ZVU6G0Xb+iX3D+A7uEItzLAygf7V/Se6tUg3SlUWf85G4S5vceZzbzTXbNso+vCaYc+RA0xwaxDBDHomdJVzpK/TUL+lV63V51vhvaM2redU+fYDGuUHUbVjt0Y4qaHBr6R4Rh0GujbL6U+/eq1yQ52VGD34f1eldt56xvykP1HAfs158oDcCL1lnJ26SPMzN38X6RCl/vAZn8UmOntmpa2LVT+j8kf1lKAQdpGYGbwZybo8LCYL2lyv3LTw1slULZsoKnazuZOKoaTxEziJfvr79jS9sNctqxBMPkeTDxUuLdd3URpiCCfpRcmKH+owAz3AAAAAAAAAAAAAAACAAAAGHZtdHN0aWlxMS5jZWRlbGdyb3VwLmNvbQAAACkAAAAYdm10c3RpaXExLmNlZGVsZ3JvdXAuY29tAAAACXZtdHN0aWlxMQAAAABfaeD6AAAAAGFxvY= ssh_host_rsa_key.pub

ここで、私が持っているファイルの終わりにssh_host_rsa_key.pubまたは/home/user/ssh_host_rsa_key.pub

最後のスペースから始めて、すべてを探して置き換える方法は?それと一緒にsed、あるいはawk他に何でも...

よろしくお願いします。

ベストアンサー1

あなたは試すことができます

sed -E 's/(^.*) [^ ]+$/\1 replacement_text/' file.txt

これは一致

  • 「行の先頭から始まるすべて」(^.*パターン、「キャプチャグループ」に配置されている( ... ))、
  • それではスペースがありますが、
  • それから「何でもしかし、[^ ]行末までの空白()」(後者は「1つ以上の対応する文字」を+意味し、「行の終わり」を表す基準点である)、[...]$

後半を代替テキストに置き換えます。前の部分は、キャプチャグループのために「self」に置き換えられます\1

おすすめ記事