I recently encountered a scene and need to output the first N columns of a text message.
It is well known that cut
can specify the separator and specify the range of the column. For example, cut -d' '-f-4
is output with a space as a separator The first 4 columns. But the separator of cut
can only be one character, which is far less useful than awk
.
After a simple search of various information on the Internet, there is no simple method for awk to output the first N columns. The most commonly seen is to use a for loop to output [1][2]:
$ awk'{ for(i=1; i<=2; i++) {print $i} }'
Here is a method to modify the NF mark output:
$ awk'{NF=4}1'
This is the output of the first 4 columns, for example:
$ dpkg- l | grep ^ii | head -n 3 | awk'{NF=4}1'ii accountsservice 0.6.45-1ubuntu1 amd64ii acl 2.2.52-3build1 amd64ii acpid 1:2.0.28-1ubuntu1 amd64
References
- How to print first'n' columns?
- Use awk to print the last N columns of a file or a pipe< /li>