3 ms·
> How often will I need to make a directory structure that is several levels deep, but only one directory at each level? When you want to put a file into a dir
by ralph 19y ago
> How often will I need to make a directory structure that is several levels deep, but only one directory at each level?
When you want to put a file into a directory structure where theres several levels of directories to avoid one directory containing many files, e.g. com/ycombinator/news/foo.
> For someone who was trying to save a few keystrokes, instead of trying waste time getting the right field for awk, just use grep. Its easy, you can't mess it up, and unless the formatting really matters its the best option.
The FA shows grep fails because 'Dec' matches part of the filename instead of just on the date. awk's a worthy solution in that case and formatting of the output wasn't relevant to the point made.
- brent 19y agoBy formatting I was referring to the fact that he had to match the 6th field. If grep would return 100k and only 10 in the desired field awk is obviously handy (the exception). In the general case where you are just trying to hunt things down who stops and counts which field their target string is in. I could have run grep and analyzed the results by the time you count to the right field. If you miscounted however... how do you know?
- ralph 19y agoThe example was using awk to pick "Dec" out in the month column whilst pointing out a grep for "Dec" would also match the filename "December" which didn't have "Dec" in the month column. awk's clearly better than grep in this case. It's not hard to count the column and you can always do a ... | awk '{print $6}' | sort | uniq -c to see if you've got it right. In fact, a common way to develope the pipeline for a one-off task is to keep appending a pipe and another command to the previous pipeline command. That way, you can see a sample of what's being produced instead of imagining it. You couldn't have analysed the results of grep, discarding the non-month matches of "Dec" in the time taken to count up to field 6 if the number of lines was at all significant. Don't be silly. If I did miscount and no lines matched I may be suspicious and look more closely. If some lines matched but on a different column than intended I may notice. I can re-run the command after correction or try the {print $6} idea. How would you notice if your manual* analysis failed to spot the extra result from grep here and there. Would you do your manual analysis twice? Ask someone else to do it too? Or just think "good enough" and use the data for the next stage?