Bunun bir golf maçına dönüşüp dönüşmediğini merak ediyorum :
sed 'p;p;p'
awk '1;1;1;1'
perl -lpE 'say;say;say' # if Paul McCartney and Michael Jackson were hackers...
Açıklama:
sed'in p
komutu geçerli satırı yazdırmaktır. Varsayılan davranış, bir sonraki satıra geçmeden hemen önce geçerli satırı yazdırmaktır (bu yüzden sed'in -n
onu kapatmanıza izin vermesi gerekir). Bazı yaşlı sümüklerde noktalı virgül yoktur (bence) bu yüzden yapmanız gerekebilirsed -e p -e p -e p
Awk condition {action}
çiftlerle çalışır . Eylem atlanırsa, varsayılan koşul doğruysa geçerli satırı yazdırmaktır. Awk, birçok C benzeri dil gibi, 1
gerçek gibi davranır . (Tamlık için, koşul belirtilmezse, eylem her kayıt için yürütülür.)
Birçok perl işlevi "varsayılan" değişkeninden yararlanır. Bu tek astar eşdeğerdir (perl 5.16'da):
$ 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
tekrarlamak için sadece bir komut varsa parantez ihtiyacı yok. Ve loop:perl
kullanıyorsanız daha basittir .foreach
for$i(0..3){print}