Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I would not call that "as concise as awk"


Lisp:

  $ txr -e '(awk ((prn `@[f 2]:@[f 0] @[f 1]`)))'
  1 2 3
  3:1 2
How about input from a string stream? At the REPL:

  1> (with-in-string-stream (*stdin* "1 2 3")
       (awk ((prn `@[f 2]:@[f 0] @[f 1]`))))
  3:1 2
  nil
It pays not to have awk be some some canned global behavior enabled by a command line option.


Another way, without using a quasiliteral: just set the output field separator (ofs) to empty string, and prn:

  txr -e '(awk (:set ofs "") ((prn [f 2] ":" [f 0] " " [f 1])))'
This is like:

  awk -v OFS= '{print $3, ":", $1, " ", $2}'




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: