2 min read | by Jordi Prats
If we try to use less on an application with colored output it will get messy like this:
$ terraform plan | less
(...)
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
ESC[33m~ESC[0m update in-place
ESC[0m
Terraform will perform the following actions:
ESC[1m # module.spinnaker.kubernetes_default_service_account.default_saESC[0m will be updated in-placeESC[0mESC[0m
ESC[0m ESC[33m~ESC[0mESC[0m resource "kubernetes_default_service_account" "default_sa" {
ESC[1mESC[0midESC[0mESC[0m = "spinnaker-green/default"
ESC[90m# (2 unchanged attributes hidden)ESC[0mESC[0m
ESC[31m-ESC[0m ESC[0msecret {
ESC[31m-ESC[0m ESC[0mESC[1mESC[0mnameESC[0mESC[0m = "default-token-m2z4q" ESC[90m->ESC[0m ESC[0mESC[90mnullESC[0mESC[0m
}
ESC[90m# (1 unchanged block hidden)ESC[0mESC[0m
}
ESC[0mESC[1mPlan:ESC[0m 0 to add, 1 to change, 0 to destroy.
ESC[0mESC[90m
(...)
Some applications, like terraform might have a flag to disable the colored output. For example, to disable coloring on terrafrom we need to add the -no-color option:
$ terraform plan -no-color | less
But if we want to be able to see the colors on less paged output, we will have to add the --raw-control-chars flag (-r for short) So using less like this we will be able to see the color output being paged:
$ terraform plan | less -r
Posted on 22/10/2021