मुझे आश्चर्य है कि अगर यह एक गोल्फ मैच में बदल रहा है :
sed 'p;p;p'
awk '1;1;1;1'
perl -lpE 'say;say;say' # if Paul McCartney and Michael Jackson were hackers...
स्पष्टीकरण:
sed की p
कमांड करंट लाइन को प्रिंट करना है। डिफ़ॉल्ट व्यवहार अगली पंक्ति में जाने से ठीक पहले करंट लाइन को प्रिंट करना है (इसीलिए sed को -n
आपको इसे बंद करने की अनुमति देनी होगी)। कुछ पुराने सेड्स में अर्धविराम (मुझे नहीं लगता) है इसलिए यह संभव है कि आपको करना पड़ सकता हैsed -e p -e p -e p
अजक condition {action}
जोड़े के साथ काम करता है । यदि कार्रवाई छोड़ दी जाती है, तो शर्त सही होने पर डिफ़ॉल्ट को वर्तमान लाइन प्रिंट करना है। कई सी-लाइक लैंग्वेज की तरह अवाक भी 1
सच मान लेता है। (पूर्णता के लिए, यदि शर्त को छोड़ दिया जाता है, तो कार्रवाई प्रत्येक रिकॉर्ड के लिए निष्पादित की जाएगी।)
कई पर्ल फ़ंक्शन "डिफ़ॉल्ट" चर का लाभ उठाते हैं। यह वन-लाइनर (पर्ल 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
'एसfor
ब्रेसिज़ की जरूरत नहीं है, तो सिर्फ एक ही आदेश को दोहराने के लिए है। औरperl
सरल है यदि आपforeach
लूप का उपयोग करते हैंfor$i(0..3){print}
:।