Name
t
Synopsis
[address1[,address2]]t [label]
Description
Test if any substitutions have been made on addressed lines, and if so, branch to line marked by :label. (See b and :.) If label is not specified, control falls through to bottom of script. The t command is like a case statement in the C programming language or the 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):
/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, Third 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.