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

All the pipes and non-builtin commands (especially python!) look like overkill to me, I must say.

    for set in *_data.csv ; do
        num=${set/_*/}
        success=${set/data/A}
        if [ ! -e $success ] ; then echo $num ; fi
    done
ETA: likely specific to bash, since I have no experience with other shells except for dalliances with ksh and csh in the mid-90s.


Yup, I'd probably have gone with a `for` loop also. A bit shorter:

  for set in *_data.csv; do
    [[ -f "${set/data/A}" ]] || echo "${set%_data.csv}"
  done
Edit: though I just write it out like this for formatting on HN. In real life, that would just be a one-liner:

for set in *_data.csv; do [[ -f "${set/data/A}" ]] || echo "${set%_data.csv}"; done


Just because I like GNU parallel:

    parallel -kj1 'f="{}"; [[ -f "${f/data/A}" ]] || echo $f' ::: *_data.csv




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

Search: