कैसे -प्रचार का उपयोग करने में आंशिक सेकंड से छुटकारा पाने के लिए?


6

मैं अपने सर्वर पर सबसे हाल की 20 PHP फ़ाइलों को संशोधित करने के लिए इस शेल कमांड को चला रहा हूं।

find . -name '*.php' -printf '%TY-%Tm-%Td %TH:%TM:%TS %Tz %p\n' | sort -r | head -20

आउटपुट इस प्रकार है:

2016-08-08 01:44:45.3820716170 -0700 ./html/index.php
2016-08-07 05:39:29.0000000000 -0700 ./html/thumb.php
2016-08-07 03:01:44.0000000000 -0700 ./html/paths.php
...

स्ट्रैफ़ाइम मैन पेज के अनुसार , मुझे बस% S (और% TS) का उपयोग करने में सक्षम होना चाहिए

% S

दशमलव संख्या के रूप में दूसरा (श्रेणी 00 से 60)। (सामयिक छलांग सेकंड के लिए अनुमति देने के लिए सीमा 60 से ऊपर है।)

वहाँ शायद कुछ के साथ चल रहा है find, लेकिन अन्य समय मापदंडों के अनुसार काम करते हैं। मैं निम्नलिखित की तरह परिणाम प्राप्त करने की कोशिश कर रहा हूं। यदि अतिरिक्त स्ट्रिंग वास्तव में आंशिक सेकंड में है, तो राउंडिंग या ट्रंकटिंग ठीक है। यह कैसे किया जा सकता है?

2016-08-08 01:44:45 -0700 ./html/index.php
2016-08-07 05:39:29 -0700 ./html/thumb.php
2016-08-07 03:01:44 -0700 ./html/paths.php
...

(और यदि उपरोक्त कमांड क्या करता है, यह करने के लिए एक अधिक कुशल तरीका है, मैं सभी कान हूं।)


मेरा findमैन पेज कहता है कि Sइसमें भिन्नात्मक सेकंड शामिल हैं: "एस सेकेंड (00.00 .. 61.00)। एक आंशिक हिस्सा है।" और मैं एक विकल्प पर ध्यान नहीं देता जो कि नहीं है
एरिक रेनॉफ


@ EricRenouf एक बेहतर पुनरावर्ती find( दंड को माफ) पर अच्छा लगता है । यदि संभव हो तो भिन्नात्मक सेकंड निकालना भी अच्छा होगा।
Drakes

जवाबों:


8

आप %.nस्वरूपण सिंटैक्स का उपयोग करके आंशिक भाग को काट सकते हैं , जहां nएक पूर्णांक है जो उस स्ट्रिंग की लंबाई निर्दिष्ट करता है जिसे आप रखना चाहते हैं। आपके विशेष मामले में, यह होगा:

find . -name '*.php' -printf '%TY-%Tm-%Td %TH:%TM:%.2TS %Tz %p\n' | sort -r | head -20


1
@Drakes, मुझे लगता है कि आपको उत्तर के रूप में वास्तव में "स्वीकार" करना चाहिए।
r2evans
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.