Não consigo obter o comando sed mais básico para executar na linha de comando

5

Eu me sinto como um newb total. Por que isso não funciona?

$ echo foobar > textfile
$ sed /foo/bar/ textfile
sed: can't find label for jump to 'ar/'

Eu também tentei sed "/foo/bar/" textfile e sed '/foo/bar/' textfile , o que gera o mesmo erro.

Usando o Ubuntu 8.04 e o GNU sed versão 4.1.5 até o bash.

    
por Nilzor 22.04.2012 / 13:34

2 respostas

8

Tente isto: sed 's/foo/bar/' textfile .

  • As citações em torno da declaração são boas práticas
  • s para substituto. É o comando que você quer executar. foo é o termo de pesquisa bar da substituição.

Existe muita informação sobre sed online. Por exemplo: link

    
por jippie 22.04.2012 / 13:36
2

Você precisa dar o comando sed a; ele analisou o que você deu como padrão de procura /foo/ seguido pelo comando b ar/ (ramificação para o rótulo ar/ ). Você provavelmente quis dizer 's / foo / bar /' significando substituir a primeira instância de foo por bar em cada linha.

    
por geekosaur 22.04.2012 / 13:37