Como deletar essa string de um arquivo usando sed ou perl?

Como deletar essa string de um arquivo usando sed ou perl?

Quero excluir esta string:

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Faça login como usuário \"centos\" em vez de usuário \"root\".';echo;sleep 10"

no arquivo abaixo:

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Faça login como usuário \"centos\" em vez de usuário \"root\".';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCV9sc7lTrpAJb1UARLmNA08XD8Dy0hGJiX1E5qYk8MkH36xbBtcO6xeuncFr619pu+R/08jkYn9GIXlgPzD9THUpEI+m/OSp5nVPgIamiN7Lud OSks6zwk9THkxeSmW95KNEHW5h8Y8MoB0wXzGdr0yiV32nLmvyG18JU6

Responder1

O arquivo é um authorized_keysarquivo para SSH, frequentemente encontrado em ~/.ssh/authorized_keys. Ele possui vários campos, e o campo que você deseja remover é o primeiro campo opcional de "opções".

O segundo campo é o campo "keytype", que terá um dos valores ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519, ssh-dssou ssh-rsa, conforme sshdmanual.

Podemos usar este fato para remover o campo de opções:

sed -E 's/^.* (ecdsa-sha2-(nistp384|nistp521)|ssh-(ed25519|dss|rsa))/\1/' ~/.ssh/authorized_keys >~/.ssh/authorized_keys.new &&
mv ~/.ssh/authorized_keys.new ~/.ssh/authorized_keys &&
chmod go-rwx ~/.ssh/authorized_keys

Ou você pode usar sed -i ...para alterar o arquivo no local se souber como isso geralmente funciona no seu Unix (o -isinalizador funcionaum poucodiferentemente em diferentes implementações de sed).

O sedcomando de edição s/^.* (ecdsa-sha2-(nistp384|nistp521)|ssh-(ed25519|dss|rsa))/\1/corresponderá à expressão regular estendida ^.* (ecdsa-sha2-(nistp384|nistp521)|ssh-(ed25519|dss|rsa))e substituirá o texto correspondente pelo tipo de chave encontrado na linha. A expressão corresponde a qualquer coisa, desde o início de cada linha de entrada até, e inclusive, um dos tipos de chave válidos.

Responder2

sed -i 's/your_string//g' filename

Você provavelmente precisará escapar de alguma pontuação em your_string.

informação relacionada