Created
March 8, 2018 16:07
-
-
Save jhyland87/d42e8ec133dce6525d26b13649055abf to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/local/bin/awk -f | |
# Examples: | |
# ls -1 | ./hr-with-string.1.awk | |
# ls -1 | ./hr-with-string.1.awk -v pad=30 | |
# ls -1 | ./hr-with-string.1.awk -v pad=30 -v hr='-' | |
# ls -1 | ./hr-with-string.1.awk -v pad=30 -v hr='><' | |
function center( str, a, left, right ){ | |
right = int(( CFG[ pad ] - length(str)) / 2) | |
left = CFG[ pad ] - length(str) - right | |
return sprintf( "%" left "s%s%" right "s", "", str, "" ) | |
} | |
function center_hr( str, hr_len ){ | |
if ( ! hr_len ) hr_len = CFG[ pad ] | |
hr_right = sprintf( "%"hr_len"s","" ) | |
hr_left = sprintf( "%"hr_len"s","" ) | |
gsub( / /, CFG[ hr_l ], hr_left ) | |
gsub( / /, CFG[ hr_r ], hr_right ) | |
print hr_left center( str, 30 ) hr_right | |
} | |
BEGIN { | |
printf( "%-6s | %-15s : %s\n", "BEGIN", "padding", padding ) | |
printf( "%-6s | %-15s : %s\n", "BEGIN", "pad", pad ) | |
printf( "%-6s | %-15s : %s\n", "BEGIN", "char", char ) | |
printf( "%-6s | %-15s : %s\n", "BEGIN", "hr", hr ) | |
if ( padding ) CFG[ pad ] = padding | |
else if( pad ) CFG[ pad ] = pad | |
else CFG[ pad ] = 10 | |
if ( char ) CFG[ hr ] = char | |
else if( hr ) CFG[ hr ] = hr | |
else CFG[ hr ] = "-" | |
if ( length( CFG[ hr ] ) == 1 ){ | |
CFG[ hr_l ] = CFG[ hr ] | |
CFG[ hr_r ] = CFG[ hr ] | |
} | |
else if ( length( CFG[ hr ] ) == 2 ){ | |
#else { | |
CFG[ hr_l ] = substr( CFG[ hr ], 1, 1 ) | |
CFG[ hr_r ] = substr( CFG[ hr ], 2, 1 ) | |
} | |
print "CFG[ hr_l ]:",CFG[ hr_l ] | |
print "CFG[ hr_r ]:",CFG[ hr_r ] | |
printf( "%-15s : %s\n", "length( CFG[ hr ])", length( CFG[ hr ]) ) | |
#print hr center( "Something I want to print", 30 ) hr | |
#print hr center( "foo", 30 ) hr | |
#print hr center( "FOO BAR baz", 30 ) hr | |
} | |
{ | |
center_hr( $0 ) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment