21 lines
		
	
	
	
		
			424 B
			
		
	
	
	
		
			Awk
		
	
	
	
	
	
		
		
			
		
	
	
			21 lines
		
	
	
	
		
			424 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
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |