Ich frage mich, ob dies ein Golfspiel wird :
sed 'p;p;p'
awk '1;1;1;1'
perl -lpE 'say;say;say' # if Paul McCartney and Michael Jackson were hackers...
Erläuterung:
Der p
Befehl von sed besteht darin, die aktuelle Zeile auszudrucken. Standardmäßig wird die aktuelle Zeile gedruckt, bevor zur nächsten Zeile gewechselt wird (deshalb muss sed das Deaktivieren -n
zulassen). Einige ältere Seds haben kein Semikolon (glaube ich), so dass es möglich ist, dass Sie dies tun müssensed -e p -e p -e p
Awk arbeitet mit condition {action}
Paaren. Wenn die Aktion weggelassen wird, wird standardmäßig die aktuelle Zeile gedruckt, wenn die Bedingung true zurückgibt. Awk behandelt wie viele C-ähnliche Sprachen 1
als wahr. (Der Vollständigkeit halber wird die Aktion für jeden Datensatz ausgeführt, wenn die Bedingung weggelassen wird.)
Viele Perl-Funktionen nutzen die "Standard" -Variable. Dieser Einzeiler entspricht (auf 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
Es sindfor
keine geschweiften Klammern erforderlich, wenn nur ein Befehl wiederholt werden muss. Undperl
ist einfacher , wenn Sie verwendenforeach
Schleife:for$i(0..3){print}
.