2017-12-23 24 views
-1

ファイルのパスと更新日時を表示します。特定のテキストを含む拡張することにより、ファイルを見つけて、私はファイルパスと更新日時を、その内容に「ABC」を含むすべての.txtファイルを検索し、表示する必要が

多分何かのように:

> find /folder -iname '*.txt' -print0 | xargs -0 grep -i -n -l "abc" | xargs echo <filepath> <modified_date> 

予想される出力は:

/folder/hello.txt 2017-12-12 32:56:23 
/folder/d1/d2/hey.txt 2017-12-12 32:56:23 

答えて

4

あなたがGNU find持っているようですので、あなたは-printf述語を使用することができます。これは正しい軌道に乗ってあなたを取得する必要があります:

find /folder -iname '*.txt' -type f -exec grep -q 'abc' {} \; -printf '%p %Tx %Tr\n' 

-printf述語のため%T修飾子は、あなたが探しているものです。面白いxrは日時です。さらに詳しい情報はman findから:

    @  seconds since Jan. 1, 1970, 00:00 GMT, with frac‐ 
         tional part. 

       Time fields: 

       H  hour (00..23) 

       I  hour (01..12) 

       k  hour (0..23) 

       l  hour (1..12) 

       M  minute (00..59) 

       p  locale's AM or PM 

       r  time, 12-hour (hh:mm:ss [AP]M) 

       S  Second (00.00 .. 61.00). There is a fractional 
         part. 

       T  time, 24-hour (hh:mm:ss.xxxxxxxxxx) 

       +  Date and time, separated by `+', for example 
         `2004-04-28+22:22:05.0'. This is a GNU extension. 
         The time is given in the current timezone (which 
         may be affected by setting the TZ environment 
         variable). The seconds field includes a frac‐ 
         tional part. 

       X  locale's time representation (H:M:S). The seconds 
         field includes a fractional part. 

       Z  time zone (e.g., EDT), or nothing if no time zone 
         is determinable 

       Date fields: 

       a  locale's abbreviated weekday name (Sun..Sat) 

       A  locale's full weekday name, variable length (Sun‐ 
         day..Saturday) 

       b  locale's abbreviated month name (Jan..Dec) 

       B  locale's full month name, variable length (Janu‐ 
         ary..December) 

       c  locale's date and time (Sat Nov 04 12:02:33 EST 
         1989). The format is the same as for ctime(3) and 
         so to preserve compatibility with that format, 
         there is no fractional part in the seconds field. 

       d  day of month (01..31) 

       D  date (mm/dd/yy) 

       h  same as b 

       j  day of year (001..366) 

       m  month (01..12) 

       U  week number of year with Sunday as first day of 
         week (00..53) 

       w  day of week (0..6) 

       W  week number of year with Monday as first day of 
         week (00..53) 

       x  locale's date representation (mm/dd/yy) 

       y  last two digits of year (00..99) 

       Y  year (1970...) 
関連する問題