Gostaria de saber se isso está se transformando em uma partida de golfe :
sed 'p;p;p'
awk '1;1;1;1'
perl -lpE 'say;say;say' # if Paul McCartney and Michael Jackson were hackers...
Explicação:
O p
comando do sed é imprimir a linha atual. O comportamento padrão é imprimir a linha atual imediatamente antes de passar para a próxima linha (é por isso que o sed precisa -n
permitir que você a desative). Alguns seds mais velhos não têm o ponto-e-vírgula (eu acho), então é possível que você precise fazersed -e p -e p -e p
O Awk trabalha com condition {action}
pares. Se a ação for omitida, o padrão é imprimir a linha atual se a condição retornar verdadeira. O Awk, como muitos idiomas semelhantes a C, trata 1
como verdade. (Para completar, se a condição for omitida, a ação será executada para cada registro.)
Muitas funções perl aproveitam a variável "padrão". Este one-liner é equivalente a (no perl 5.16):
$ perl -MO=Deparse -lpE 'say;say;say'
BEGIN { $/ = "\n"; $\ = "\n"; }
use feature 'current_sub', 'evalbytes', 'fc', 'say', 'state', 'switch', 'unicode_strings', 'unicode_eval';
LINE: while (defined($_ = <ARGV>)) {
chomp $_;
say $_;
say $_;
say $_;
}
continue {
die "-p destination: $!\n" unless print $_;
}
awk
'sfor
não precisa de chaves, se houver apenas um comando para repetir. Eperl
é mais simples se você usar oforeach
loop:for$i(0..3){print}
.