Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><code>sort</code> is a nice tool but it doesn't have enough bells and whistles to take pseudo-xml apart, convert an attribute to a sensible time value, and then sort on it.</p> <p>However, such tools do exist. While the best way to do this would probably be with an XSLT transform, if the file is really as consistent as your example command expects, you could extract the time values with <code>cut -d'"' -f4</code>, and you can convert each one to a more sensible format with <code>date</code>. For example (needs GNU <code>date</code>):</p> <pre><code>paste &lt;(cut -d'"' -f4 file.txt | date -f- +%s) file.txt | sort -n | cut -f2- </code></pre> <p>which extracts the date-times, one per line; feeds them to date to convert them to seconds-since-epoch; pastes each timestamp on the beginning of each line; sorts the pasted result numerically, now with numeric timestamps at the beginning, and finally removes the timestamp to get the original file back.</p> <p>Test:</p> <pre><code>$ cat &gt;file.txt &lt;&lt;'EOF' &lt;r id="abcd" t="10/12/2012 12:16:17 AM"&gt;&lt;d&gt;&lt;nv n="name" v="868" /&gt;&lt;nv n="name0" v="73" /&gt;&lt;nv n="name1" v="13815004" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="defg" t="7/24/2012 12:16:17 PM"&gt;&lt;d&gt;&lt;nv n="name" v="0" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="0" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="abcd" t="7/24/2012 12:16:17 PM"&gt;&lt;d&gt;&lt;nv n="name" v="0" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="0" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="zxy" t="7/24/2012 12:16:17 PM"&gt;&lt;d&gt;&lt;nv n="name" v="0" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="59542676" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="fghj" t="7/24/2012 12:16:17 PM"&gt;&lt;d&gt;&lt;nv n="name" v="38" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="3004537" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="defg" t="7/24/2012 12:16:18 AM"&gt;&lt;d&gt;&lt;nv n="name" v="177" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="5888870" /&gt;&lt;/d&gt;&lt;/r&gt; EOF $ paste &lt;(cut -d'"' -f4 file.txt | date -f- +%s) file.txt | sort -n | cut -f2- &lt;r id="defg" t="7/24/2012 12:16:18 AM"&gt;&lt;d&gt;&lt;nv n="name" v="177" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="5888870" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="abcd" t="7/24/2012 12:16:17 PM"&gt;&lt;d&gt;&lt;nv n="name" v="0" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="0" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="defg" t="7/24/2012 12:16:17 PM"&gt;&lt;d&gt;&lt;nv n="name" v="0" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="0" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="fghj" t="7/24/2012 12:16:17 PM"&gt;&lt;d&gt;&lt;nv n="name" v="38" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="3004537" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="zxy" t="7/24/2012 12:16:17 PM"&gt;&lt;d&gt;&lt;nv n="name" v="0" /&gt;&lt;nv n="name0" v="0" /&gt;&lt;nv n="name1" v="59542676" /&gt;&lt;/d&gt;&lt;/r&gt; &lt;r id="abcd" t="10/12/2012 12:16:17 AM"&gt;&lt;d&gt;&lt;nv n="name" v="868" /&gt;&lt;nv n="name0" v="73" /&gt;&lt;nv n="name1" v="13815004" /&gt;&lt;/d&gt;&lt;/r&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload