Hacker News new | ask | show | jobs
by inp 2684 days ago
Instead to create a script in Python to convert numbers in integers, you can use awk: "python3 parse.py" becomes "awk '{printf "%d\n", $0}'"
2 comments

Not sure I understand why it needs to even know there's numbers in the filename.

The problem seems to boil down to:

"Find all files with the pattern '[something]_data.csv' and report if '[something]_A.csv' doesn't exist"

Unless I'm missing something, all the sorting and sequence generation isn't adding anything.

Why even use awk rather than the shell's (well, bash's) builtin printf?

    $ printf '%d\n' "0005"
    5
That might not always do what a naïve user expects:

    $ printf '%d\n' "0025"
    21
You can apply the awk command on a pipe, and so it is applies on each line of the file/stream.
Right - though that's solvable with xargs:

    $ echo "0005" | xargs printf '%d\n'
    5
That said, my suggestion doesn't work anyway since the leading 0 marks it as octal, d'oh (as mentioned elsewhere in the thread).