Name
t
Synopsis
[address1
[,address2
]]t [label
]
Test if successful substitutions have been made on addressed lines, and if so, branch to the line marked by :label. (See b and :.) If label is not specified, control branches to the bottom of the script. The t command is like a case statement in the C programming language or the various shell programming languages. You test each case; when it’s true, you exit the construct.
Example
Suppose you want to fill empty fields of a database. You have this:
ID: 1 Name: greg Rate: 45 ID: 2 Name: dale ID: 3
You want this:
ID: 1 Name: greg Rate: 45 Phone: ?? ID: 2 Name: dale Rate: ?? Phone: ?? ID: 3 Name: ???? Rate: ?? Phone: ??
You need to test the number of fields already there. Here’s the script (fields are tab-separated):
#n /ID/{ s/ID: .* Name: .* Rate: .*/& Phone: ??/p t s/ID: .* Name: .*/& Rate: ?? Phone: ??/p t s/ID: .*/& Name: ???? Rate: ?? Phone: ??/p }
Get Linux in a Nutshell, 6th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.