Skip to content
Archive of posts filed under the awk category.

Argument juggling with awk

How to pass extra stuff without awk noticing

Replace every Nth occurrence

Problem statement: replace every Nth occurrence of a pattern. For bonus points, provide context to the match. For this article, we're going to use this example (mostly nonsensical, but that illustrates the concept): 1foo1 bar foo 2foo3 abc def foo foo foo 1foo4 foo foo 3foo9 4foo7 zzz 7foo7 3foo3 And we want, among all […]

Text replacement in context/out of context

An added twist to the usual search/replace problems.

Look for multiple patterns in files

One of the most FAQ of all times.

Remove duplicates, but keeping only the last occurrence

Again on IRC, somebody asked how to remove duplicates from a file, but keeping only the last occurrence of each item. The classic awk idiom awk '!a[$0]++' prints only the first instance of every line. So if the input is, for example foo bar baz foo xxx yyy bar the "normal" output (ie using the […]