Tricks with less
less
is one of those utilities I use day in and day out, and it’s easy to forget that it has some really powerful features.
Case-insenstive searching
Nine times out of ten, I less
a file and then start finding lines using the /
command. You can make this case-insentive if you enter -I
and hit return - you’ll see a prompt saying Ignore case in searches and in patterns (press RETURN)
Then when you search using /
or ?
you can be confident that you won’t miss something due to case sensitivity.
Filtering
Even more useful is filtering; you can strip out all the lines you don’t care about by typing &
- you’ll get a &/
prompt where you can enter your filter text. Say you have an nginx access log:
107.174.242.123 - - [02/Mar/2021:05:15:07 -0800] "GET /2021/01/04/hello-2021 HTTP/1.1" 200 7073 "https://jay.gooby.org/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.18 Safari/537.36"
104.199.125.198 - - [02/Mar/2021:05:15:33 -0800] "HEAD / HTTP/2.0" 200 390 "https://t.co/Pp644lxwd6" "-"
64.225.34.92 - - [02/Mar/2021:05:16:16 -0800] "GET /feed.xml HTTP/1.1" 200 13370 "-" "Feedbin feed-id:2056147 - 2 subscribers"
40.77.167.97 - - [02/Mar/2021:05:24:34 -0800] "GET /robots.txt HTTP/1.1" 200 4785 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
64.225.34.92 - - [02/Mar/2021:05:26:56 -0800] "GET /feed.xml HTTP/1.1" 200 13370 "-" "Feedbin feed-id:2056147 - 2 subscribers"
13.66.139.48 - - [02/Mar/2021:05:29:23 -0800] "GET / HTTP/1.1" 200 7706 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
You can hide anything that isn’t a HEAD request by typing &
and then at the &/
prompt enter HEAD
104.199.125.198 - - [02/Mar/2021:05:15:33 -0800] "HEAD / HTTP/2.0" 200 390 "https://t.co/Pp644lxwd6" "-"
Use less +F
as a replacement for tail -f
How many times have you been tailing a file with tail -f
and then wanted to search for something, so you end up quitting the tail and then less
ing it instead? I used to do this all the time, until I discovered that less
has a tail mode. Use it like this:
less +F /some/file
You can ctrl-c to exit the tailing mode and then use all the above tricks to filter and search, and then when you’re done, press shift-f to go back to tail mode.
All links, in order of mention:
- less: https://linux.die.net/man/1/less
- really powerful features: https://unix.stackexchange.com/questions/31/list-of-useful-less-functions
Recent posts:
- Patch for aarch64 (aka arm64) openssl 1.0.2 'relocation R_AARCH64_PREL64 against symbol OPENSSL_armcap_P error'
- TIL: the `NO_COLOR` informal standard to suppress ANSI colour escape codes
- Copy the contents of a branch into an existing git branch without merging
- Adding search to a static Jekyll site using pagefind
- asdf, python and automatically enabling virtual envs