Can someone please tell me how does sed -n \'1!p
work ? Below is the full command which I am using to sort my pods in k8s based on nodes they are assigned.
From info sed
:
-n
:
By default, 'sed' prints out the pattern space at the end of each
cycle through the script (*note How 'sed' works: Execution Cycle.).
These options disable this automatic printing, and 'sed' only
produces output when explicitly told to via the 'p' command.
1p
: print first line
1!p
: do not print first line.
By default, sed
will output every line it parses.
-n
option is there to hide this output, and display only the lines specified with the p
option.
In your exemple, sed -n '1!p'
means "Display every line but first".
A more understandable example is when you want to search/replace with sed
. If you want to see the whole resulting file you'll use this:
sed 's/from/to/g' file.txt
But if you only want to see which lines have been changed, use this:
sed -n 's/from/to/gp' file.txt