AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1532649
Accepted
Paul Plankton
Paul Plankton
Asked: 2024-11-11 22:57:49 +0800 CST2024-11-11 22:57:49 +0800 CST 2024-11-11 22:57:49 +0800 CST

Como substituir strings especiais via bash?

  • 772

Tenho uma lista de IPs como

35.195.23.184 134.209.172.147 207.90.244.14 179.43.191.98 77.90.22.16 222.95.163.138 95.214.53.91 45.230.66.15 199.45.155.111 5.8.11.202 185.191.126.248 154.83.15.156 71.6.232.28 35.204.124.189 141.98.11.178 64.62.197.44 64.62.197.36 64.62.197.33 185.242.226.99 46.19.69.70 114.33.100.55 95.214.55.79 114.35.57.211 162.191.196.61 87.120.126.85 2.196.195.65 118.163.142.112 80.82.77.202 182.44.10.178 114.38.214.165 175.107.1.178 122.116.134.171 109.205.213.198 178.215.238.69 122.116.158.160 93.174.93.12 147.45.112.17 59.126.25.244 59.126.254.199 40.83.134.151 125.228.162.168 220.134.106.248 45.115.89.120 4.255.98.186 87.120.114.229 45.84.89.3 46.174.191.28 95.214.53.211 141.98.11.175 125.228.214.129 36.139.63.123 180.149.126.8 122.116.183.60 185.82.219.179 165.154.206.35 106.75.146.146 106.75.169.16 59.126.115.226 59.182.82.59 47.91.91.123 34.77.49.75 45.148.10.206 45.156.130.18 87.236.176.150 167.94.145.96 199.45.154.130 205.210.31.30 147.185.132.30 64.62.156.83 35.203.210.49 100.0.161.38 1.34.209.79 

(não se preocupe em publicá-los aqui, todos eles foram capturados como fontes de hackers agressivos por um honeypot.

Agora, dentro de um bash-shell, quero reformatar esta lista - os espaços entre eles têm que ser substituídos por uma vírgula e um espaço (, ) para usá-los facilmente em um arquivo hosts.deny. Meu problema: a substituição normal do bash ou sed sempre falha com um erro "substituição ruim". Parece que preciso escapar o espaço/vírgula de alguma forma.

Então minha pergunta: como substituo todos os espaços nesta lista por uma combinação de vírgula/espaço?

Obrigado!

command-line
  • 2 2 respostas
  • 47 Views

2 respostas

  • Voted
  1. Best Answer
    choroba
    2024-11-11T23:05:10+08:002024-11-11T23:05:10+08:00

    Funciona para mim. Você está citando a substituição corretamente?

    $ echo 35.195.23.184 134.209.172.147 207.90.244.14 | sed 's/ /, /g'
    35.195.23.184, 134.209.172.147, 207.90.244.14
    
    • 2
  2. Ed Morton
    2024-11-13T08:39:27+08:002024-11-13T08:39:27+08:00

    Usando qualquer awk:

    $ awk -v OFS=', ' '{$1=$1} 1' file
    35.195.23.184, 134.209.172.147, 207.90.244.14, 179.43.191.98, 77.90.22.16, 222.95.163.138, 95.214.53.91, 45.230.66.15, 199.45.155.111, 5.8.11.202, 185.191.126.248, 154.83.15.156, 71.6.232.28, 35.204.124.189, 141.98.11.178, 64.62.197.44, 64.62.197.36, 64.62.197.33, 185.242.226.99, 46.19.69.70, 114.33.100.55, 95.214.55.79, 114.35.57.211, 162.191.196.61, 87.120.126.85, 2.196.195.65, 118.163.142.112, 80.82.77.202, 182.44.10.178, 114.38.214.165, 175.107.1.178, 122.116.134.171, 109.205.213.198, 178.215.238.69, 122.116.158.160, 93.174.93.12, 147.45.112.17, 59.126.25.244, 59.126.254.199, 40.83.134.151, 125.228.162.168, 220.134.106.248, 45.115.89.120, 4.255.98.186, 87.120.114.229, 45.84.89.3, 46.174.191.28, 95.214.53.211, 141.98.11.175, 125.228.214.129, 36.139.63.123, 180.149.126.8, 122.116.183.60, 185.82.219.179, 165.154.206.35, 106.75.146.146, 106.75.169.16, 59.126.115.226, 59.182.82.59, 47.91.91.123, 34.77.49.75, 45.148.10.206, 45.156.130.18, 87.236.176.150, 167.94.145.96, 199.45.154.130, 205.210.31.30, 147.185.132.30, 64.62.156.83, 35.203.210.49, 100.0.161.38, 1.34.209.79
    
    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve