title: Sed - How to switch two words in a line
body: <p>I'm trying to write a shell script that switches the first and third words in a line. In this case only strings that contain letters (both upper- and lowercase) count as words, everything else (numbers, punctuation, whitespace) is considered whitespace.
  For example:</p>
  
  <pre><code>abc123def. ghi...jkl
  </code></pre>
  
  <p>would turn into:</p>
  
  <pre><code>ghi123def. abc...jkl
  </code></pre>
  
  <p>I tried the following, but it doesn't work:</p>
  
  <pre><code>sed 's/\([a-zA-Z][a-zA-Z]*\)[^A-Z^a-z]\([a-zA-Z][a-zA-Z]*\)[^A-Z^a-z]\([a-zA-Z][a-zA-Z]*\)/\3 \2 \1/' input.txt
  </code></pre>