Site TIPS PAGE🔎   UP ONE LEVEL
 OJB's Web Site. V 2.1.tip tips mac owen2 
Tip

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: Peak Fascism: Just so you know: assassinating people who think differently than you is peak fascism! (posted 2025-09-15). My latest podcast: OJB's Podcast 2025-08-07 What is Anything?.
 ©2025 by OJBRSS FeedMacs are BestMac Made
T: 279. H: 732,468,175
Features: RSS Feeds Feedback LogMod: 07 Jun 2024