One liner é o nome que se dá pros programas ou expressões que usam somente uma única linha. A diversão está em realizar uma atividade relativamente complexa com uma única linha de código.
O blog oficial do time do Windows Powershell tem como slogan "Improving the world one-liner at a time". É uma clara referência aos One-Liners.
Segundo informações da Wikipédia, o termo One-Liner tem duas referências no livro The AWK Programming Language. Nele, o autor explica o nascimento do paradigma One-Liner com seu trabalho do dia-a-dia na administração de antigos sistemas Unix:
The 1977 version had only a few built-in variables and predefined functions. It was designed for writing short programs [...] Our model was that an invocation would be one or two lines long, typed in and used immediately. Defaults were chosen to match this style [...] We, being the authors, knew how the language was supposed to be used, and so we only wrote one-liners.
Bom, agora, meu one-liner para o problema do post anterior, sobre como colocar espaços ou caracteres em todas as linhas de um arquivo. A diferença, nesse caso, está no uso da linguagem Ruby para fazer isso:
ruby -e "File.open('_vimrc'){|fin| File.open('_vimrc2','w'){|fout| fin.readlines.collect{|lin| ' ' + lin}.each{|linout| fout.write linout} }}"
Eu mesmo não sei se está correta a classificação dessa linha como um One-Liner. Ou talvez o one-liner do post anterior não seja um. Minha dúvida está em poder ou não utilizar redirecionamento do shell, por exemplo. Nesse caso, o trabalho maior foi abrir dois arquivos em uma única linha. No entanto, se eu utilizar o próprio shell para abrir e fechar o arquivo, o script em Ruby pode ficar ainda menor.
Até logo,
Comentários
Postar um comentário
Guilherme Pereira : Ola Vinicius, andei verificando seu blog e gostaria de uma ajuda sua com o seguinte problema....Preciso criar um arquivo BATCH que copia arquivos de um servidor Linux para uma máquina com Windows, ligados por rede....
Desde já, agradeço sua ajuda [23/7/07 08:51 - link]
Guilherme Pereira : Esqueci de deixar meu mail para contato. Caso algum leitor do Blog tambem se interesse pelo problema, meu mail é
pereira.guilherme@yahoo.com.br [23/7/07 10:30 - link]
Vinicius Canto : Olá,
procure por um programa chamado scp. Você pode obtê-lo juntamente com o Putty, um ótimo cliente SSH para acessar servidores *nix em geral via SSH.
[]s,
Vinicius Canto
MVP Windows Server - Admin Frameworks [28/7/07 16:43 - link]