Hacker News new | ask | show | jobs
by hanez 3843 days ago
When running 'look' to get all comments in a file I only get the first found line in the ouput. Can someone explain this?

look "#" .zshrc

There are really a lot more comments (lines starting with '#') in my .zshrc then the first line.

2 comments

From the manpage:

> As look performs a binary search, the lines in file must be sorted...

I assume you didn't sort your source file first.

When sorting the file first I get no output anymore:

sort ~/.zshrc -o /tmp/.zshrc

look "#" /tmp/.zshrc

Sorry for the noise but I am confused... :|

sort(1) might not use the same ordering as look(1)

Try setting LC_COLLATE=C and export it and retry.

Uh, wow! That was it!

Thanks for this answer...

It doesn't make sense to sort a configuration file, order and context matters. Easier to just use grep '^#' (or even better, ag).
Yes, I am aware of that but I wanted to understand the usage of 'look' at this point. It was a fault to try stuff using the .zshrc file at first because I ran into misunderstanding everything. It was just the first file that came in mind to me. Since sorting a source file and then "looking" for comments makes no sense in any way, grep seems to be really the better choice.
Your .zshrc is almost certainly not a sorted file.