Re:Show HN: Notational `ls` - Never get lost in code again (...
by colanderman on Tuesday September 06, 2011 @01:24PM
(#2966354)
The join(1) command is designed to do exactly this:
join -a2 -t: <(sort .nls) <(ls | sort)
(I think this is different from your pipeline, in that your pipeline will print files in .nls that aren't actually in the directory.)
ls | cat .nls - | column -t -s: | sort -r | perl -ane 'print unless $x{$F[0]}++'
and then obviously just echo "dirname: description" >> .nls to append to the file.
I would be interested in seeing a better pipeline, one that doesn't need perl/awk/ruby/what have you to remove the duplicates correctly.