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 pcomando 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 -npermitir 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 1como 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'sfornão precisa de chaves, se houver apenas um comando para repetir. Eperlé mais simples se você usar oforeachloop:for$i(0..3){print}.