You are working with a data pipeline, and on a certain record, you want to end processing and exit the pipeline.
But to break on some condition in the input, you need an application that parses each input record.
Worse, the condition you want could be a combination of multiple fields, or use fields unrelated to the data you want to process.
Previously csv-eval had a --select option that passed through any records that matched the select condition.
csv-eval --exit-if also passes through input records unchanged, but it exits on the first record matching the exit condition.
Like csv-eval --select you can use any expression on the input that evaluates to bool.
Comparing the two features:
$ echo -e "1,1\n2,2\n3,0\n1,3\n1,2" | csv-eval --fields=a,b --select="a+b<>3" Output: 1,1 2,2 1,3 $ echo -e "1,1\n2,2\n3,0\n1,3\n1,2" | csv-eval --fields=a,b --exit-if="a+b==3" Output: 1,1 2,2