Pergunta

Eu tenho 7 linhas de texto:

a
b
c
d
e
f
g

Agora eu quero adicionar caracteres ao final de cada linha, para acabar com:

a,
b,
c,
d,
e,
f,
g,

Eu achei que eu possa usar o comando "sed" e correr minha selecção através sed usando "Filter através do comando" em Textmate

sed 's/$/,/'

Agora, uma pergunta permanece: como faço para transformar isso em um comando Textmate que leva entrada em algum tipo de caminho (por isso sabe o texto para anexar)

(As minhas tentativas em fazer isso não têm tido sucesso)

Foi útil?

Solução

Pop isso em um comando dentro do pacote texto, ele vai anexar o que está na área de transferência para o fim de todas as linhas que foram selecionadas:

#!/bin/bash
if [[ $(pbpaste|wc -l) -eq 0 ]]
    then r=`pbpaste`
    sed 's/$/'$r'/'
    else sed 's/$/,/'
fi

É actualmente limitada a acrescentar valor de uma linha de texto, se a área de transferência contém mais de uma linha que será o padrão para uma vírgula no final das linhas selecionadas.

Editar:

Para levar isso um pouco mais, aqui está uma versão que fornece uma caixa de diálogo que solicita a entrada da string que será anexado a cada linha na seleção:

#!/bin/bash
r=$(CocoaDialog inputbox --title "String to be appended to EOL" \
   --informative-text "Enter string:" \
   --button1 "Okay" --button2 "Cancel")

[[ $(head -n1 <<<"$r") == "2" ]] && exit_discard

r=$(tail -n1 <<<"$r")

sed "s/$/$r/"

Outras dicas

Em Texto Menu já existe um comando " Editar cada linha na seleção " exatamente fazer isso. Ele vai colocar o cursor na primeira linha e que você digita lá repetido em cada linha.

Criar um novo comando no editor de pacote

#!/bin/bash
sed 's/$/,/'

Na entrada suspensa, selecione O texto selecionado ou Nada
na saída selecione Substituir texto existente

Eu só testei e funciona bem.
Você também pode escolher um atalho de teclado para torná-lo mais eficiente.

Se você está disposto a evitar a rota de comando e simplesmente usar a localizar / substituir diálogo simplesmente faça o seguinte:

  • destaque / seleccionar as linhas que você gostaria de acréscimo para
  • abrir o Find diálogo
  • Marque 'Expressões Regulares'
  • no campo 'Localizar', '$' add (para indicar o fim da linha)
  • no campo 'Substituir', ',' add (o que você quer em anexo)
  • Option espera, isso vai mudar "Substituir tudo" para "Na Seleção"

Esta técnica pode ser aplicada em uma série de outras maneiras úteis. Por exemplo, alterar '$' para '^' se você quiser prefixar cada linha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top