title: Find byte offset of a pattern in Golang
body: <p>We can find the byte offset of a pattern from file by
  "grep -ob pattern filename";
  However, <code>grep</code> is not <code>utf8</code> safe. 
  How do I find byte offset of a pattern in Go? The file is process log, which can be in TB. </p>
  
  <p>This is what I want to get in Go:</p>
  
  <pre><code>$ cat fname
  hello world
  findme
  hello 世界
  findme again
  </code></pre>
  
  <p>...</p>
  
  <pre><code>$ grep -ob findme fname
  
  12:findme
  32:findme
  </code></pre>