21 lines
423 B
Awk
21 lines
423 B
Awk
|
|
||
|
# This filter requires one command line option of form -vN=n
|
||
|
# where n must be a decimal number.
|
||
|
#
|
||
|
# Repeat each input line containing $$ n times, replacing $$ with 0...n-1.
|
||
|
# Replace each $# with n, and each $* with a single $.
|
||
|
|
||
|
BEGIN {
|
||
|
n = N + 0
|
||
|
}
|
||
|
{
|
||
|
if (/\$\$/) { rep = n } else { rep = 1 }
|
||
|
for (i = 0; i < rep; ++i) {
|
||
|
tmp = $0
|
||
|
gsub(/\$\$/, i, tmp)
|
||
|
gsub(/\$#/, n, tmp)
|
||
|
gsub(/\$\*/, "$", tmp)
|
||
|
print tmp
|
||
|
}
|
||
|
}
|