Site TIPS PAGE🔎   UP ONE LEVEL
 OJB's Site. v2.4.L: tip231 tips mac owen2 
Tip

Discuss   Up to OJB's Mac Tips List

Extract Columns Using Terminal

You can extract specific columns from text from the command line (Terminal app).

Use awk to extract a column. By default, columns are defined as non-space text separated by one of more whitespace characters (spaces or tabs) but this can be modified.

Here's a simple (pointless) example:
echo '111 2 3 4444 5' | awk '{print $2}'
This returns "2"

Note 1: The "print" is an awk command which prints a string, then a new line.
Note 2: The "$2" means return the second field.

This is useful to return a particular field from another command. Example:
ls -al | awk '{print $5}'
This displays the size (column 5) of all files in the current directory.

Here's a more complex example which shows the filename and the size, separated with "=":
ls -al | awk '{for (i=9; i<=NF; i++) printf $i " "; print "= " $5}'
Because the filename can contain spaces we need to show all columns after, and including, column 9.

Note 1: This works because the file name is the last field returned by "ls".
Note 2: The variable "NF" is built into awk and stores the number of fields.
Note 3: The "printf" awk command displays text without a line break.

You can use a different column separator (instead of the default whitespace) by using the "-F" option.

Here's an example:
echo "1,2,3,4,5,666,7,888,9" | awk -F"," '{print $7 " " $5 " " $6}'
Returns "7 5 666"





My latest blog post: Think for Yourself: In the end, everything is just an opinion. Be skeptical, and think for yourself! (posted 2026-04-25).

My latest podcast: OJB's Podcast 2026-04-14 How Far is that Star?

If you're not sure what to view from my site, here are some suggestions: My Latest Airshow Report, My Favourite Wines and Beers, An Interesting Astronomical Observation, See Some Photos, Read Some Mac Tips.


Site News (Mobile): OJB's web site, v 2.4 which has major changes, and possibly errors! Please report anything to ojb@mac.com.