2 ms·
"\r" doesn't work either. It's just not interpreting those kind of escapes. I get lines like this: historyrsed "s/^[0-9 ]*//"rsed 's/ *r*/\r/g'rless The f
by __david__ 13y ago
"\r" doesn't work either. It's just not interpreting those kind of escapes. I get lines like this:
historyrsed "s/^[0-9 ]*//"rsed 's/ *r*/\r/g'rless
The for loop is a good idea, though I prefer the "while read" idiom since it fits in with the pipeline better:
...
| awk '{print $1}' \
| while read line; do which $line; done \
...
That finally works for me. Here's the whole thing:
history \
| sed "s/^[0-9 ]*//" \
| perl -pe 's/ *\| */\n/g' \
| awk '{print $1}' \
| while read line; do which $line; done \
| sed "s.^/usr.." \
| grep ^.bin \
| sed "s/^.*\///" \
| sort \
| uniq -c \
| sort -rn
- lobotryas 13y agoFrom what I recall to represent s newline in sed on osx you need to add an actual carriage return. Take the poster's script above and copy it to a text file. Now replace \n with a new line, save and it should run.
- NyxWulf 13y agoThis works for me in zsh on OSX history \ | sed "s/^[0-9 ]//" \ | perl -pe 's/ \| */\n/g' \ | gawk '{counts[$1] += 1} END { for (x in counts) { print counts[x],x}}' OFS="\t" \ | column -t \ | sort -k 1,1nr \ | head -100 Ok not sure how to format this on HN https://gist.github.com/nyxwulf/5608955#file-gistfile1-sh https://gist.github.com/nyxwulf/5608955#file-gistfile1-sh