मैं ओएस एक्स पर टैक कमांड कैसे प्राप्त कर सकता हूं?


59

मैं tacके उत्पादन को उलटने के लिए उपयोग करना पसंद करता हूं cat। हालाँकि, यह मावेरिक्स टर्मिनल में उपलब्ध नहीं है। मैंने इसे MacPorts पर खोजने की कोशिश की और फिर से यह उपलब्ध नहीं है। क्या कोई मुझे दिखा सकता है कि मुझे कैसे मिलेगा tac? लॉग फ़ाइलों को पढ़ने के लिए यह बहुत उपयोगी है।

जवाबों:


65

हाँ:

  • Homebrew स्थापित करें
  • brew install coreutils
  • ln -s /usr/local/bin/gtac /usr/local/bin/tac जाहिरा तौर पर नवीनतम होमब्रे के साथ आवश्यक नहीं है, नीचे रैन एवर-हडानी की टिप्पणी देखें

या coreutilsएक समान तरीके से स्थापित करने के लिए MacPorts का उपयोग करें ।


मुझे नहीं पता कि ln -s /usr/local/bin/gtac /usr/local/bin/tacयह कैसे काम करता है ... क्या यह कमांड केवल कुछ फ़ाइल मेमोरी ब्लॉकों को सूचीबद्ध करने वाला नहीं है?
टिमोथी स्वान

1
सिमिलिंक सिर्फ सुविधा के लिए है। Homebrew अपने मूल नाम को एक 'जी' के साथ जोड़कर / usr / लोकल / बिन में कोरुटिल बायनेरिज़ स्थापित करता है। lsबन जाता है gls, headबन जाता है ghead। नतीजतन, के tacरूप में स्थापित किया गया है gtac, और इस जवाब में सुझाए गए सिमलिंक केवल tacउस नाम के तहत उपलब्ध कराने के लिए है। सिमलिंक को छोड़ते हुए, आप अभी भी प्रोग्राम को चला सकते हैं gtac
grebneke 21

ओह। आप इस बारे में बात कर रहे हैं यह अब अधिक समझ में ln -sनहीं ls -sआता है। मैंने इसे पहली बार सही तरीके से दर्ज किया है।
टिमोथी स्वान

2
इसके अलावा करने के लिए grebneke के जवाब: कोई नरम लिंक अब और की जरूरत है। जी प्रत्यय अब केवल तभी जोड़ा जाता है यदि ओएक्सएक्स में पहले से ही उस नाम के साथ एक कमांड है, इसलिए टीएसी को टीएसी के रूप में स्थापित किया गया है, न कि gtac।
रैन एवर-हडानी

69

कई प्रणालियों (BSD, Solaris, AIX, IRIX ...) पर OS / X की तरह, GNU की कार्यक्षमता विकल्प के साथtac उपलब्ध है । तो GNU स्थापित करने की कोई आवश्यकता नहीं है :tail-rtac

tail -r the-file

11
तो, alias tac='tail -r'ओपी के लिए चाल चलेगा!
mkc

8
खैर, वास्तव में शेल उपनाम का उपयोग करना विफल हो सकता है क्योंकि उपनाम शेल स्क्रिप्ट में स्थानांतरित नहीं होते हैं। समारोह का उपयोग करें जैसेtac() { tail -r -- "$@"; }
kojiro


0

एक अस्थायी समाधान हो सकता है:

alias tac='perl -e "print reverse(<>)"'

1
इसने मुझे <>केवल सीखने के लिए प्रेरित किया जो न केवल STDIN से पढ़ा जाता है, बल्कि वैकल्पिक रूप से भी @ARGVstackoverflow.com/questions/29020883/… मुझे अभी भी नहीं पता है कि reverseरिवर्स ऑर्डर में लाइनों को आउटपुट करने से पहले पूरी फाइल को मेमोरी में लोड किया जाएगा या नहीं । यह भयानक होगा।
ब्रूनो ब्रॉन्स्की

@BrunoBronosky,> ... STDIN, लेकिन वैकल्पिक रूप से @ ARGV: हाँ से यही है कि <> के लिए है। > ... पूरी फ़ाइल को मेमोरी में लोड करेगा ...: हाँ, यह होगा! (गीगाबाइट फाइलों के साथ ऐसा करने से बचें)
JJoao
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.