Utilizing the Linux reduce command to seize parts of strains from recordsdata

By | August 13, 2021

One surprisingly simple command for grabbing a portion of each line in a textual content file on a Linux system is reduce. It really works one thing like awk in that it permits you to choose solely what you need to see from recordsdata, enabling you to tug fields (whatever the delimiter used), characters or bytes. To verify on reduce, you’ll be able to ask about its model like this:

For instance how the reduce command works, we’ll first run instructions utilizing a pattern “cities” file that incorporates particulars of the most important cities within the US in a tab-separated format. The strains on this file look one thing like what’s proven beneath:

To pick a specific discipline from this file, you would possibly use a command like this that reveals the 4th discipline:

So as to add town names to your choice, you would choose the 2nd and 4th fields. Because the tab character is the default delimiter for the reduce command, it simply extracts these fields.



The string -f1-4 would show the primary 4 fields within the file:

To specify a unique delimiter, you would add the -d possibility and use a command like this one, which pulls usernames from the /and many others/passwd file:

To pick to see each login names and assigned shells, do this:

The command above selects the first and seventh fields.

To rely what number of accounts use every of the shells, use a command like this:

Discover what number of accounts can’t log in as a result of they’re assigned the /sbin/nologin shell. These are, in fact, accounts related to system companies.

You can too use the reduce command to pick single and a number of phrases or strings from a file. Simply do not forget that you must specify the delimiter if the phrases or strings are not separated by tabs. The 2 command beneath present completely different quantities of every line. The primary (delimited by blanks) shows the primary discipline. The second (delimited by commas) shows the entire textual content as much as the primary comma.

If we requested for the primary discipline with out specifying a delimiter, we’d see whole strains in any file that’s not delimited by tabs.

To pick strains utilizing character ranges, you are able to do one thing like this:

This shows the primary three letters of every line of a file that lists the times of the week.

You possibly can ask reduce to pick by bytes. Until your knowledge file consists of characters that occupy greater than a single byte, you wouldn’t see any variations. On this instance, we would see a distinction just because the £ signal occupies two bytes.

Within the first command above, the response reveals present a block of dots as a result of it is wanting solely on the first byte of the £ signal. Within the second, we choose by character, so it makes use of each bytes. We might even have simply carried out this and added yet one more byte:

You can too choose an choice to reverse the output out of your reduce request. This doesn’t suggest displaying it in reverse order, however means “doing the alternative”. Deciding on the primary 4 characters from a file is one factor. Choose all the things however these characters is its “complement”. This is an instance:

The reduce command affords a whole lot of flexibility for choosing parts of every line in a file. Seek the advice of the person web page for extra data on its many choices.