Sponsored Content
Top Forums Shell Programming and Scripting awk diamond code golf (just for fun!) Post 302986555 by Scrutinizer on Sunday 27th of November 2016 07:22:58 AM
Old 11-27-2016
Thanks pilnet101 Smilie . Basically it increases the line length by 2 every line and memorizes the line. Then at maximum length, the loop starts to decrement, rather than increment and only prints the lines memorized in the increment phase.

With regards to the setting of the quotient q and the line n where the maximum line length occurs, and using the name m for maximum line length rather than l which is easily confused with the number 1), perhaps this is a bit clearer:
Code:
awk -v m=15 -v c=\* 'BEGIN{q=!(m%2);n=int(m/2);for(i=k=1;i>=1;i+=k){s=s c;if(k==1)A[i]=sprintf("% *s%.*s",n,s,i+q-1,s);print A[i];if(i==n)k=-1}}'


Last edited by Scrutinizer; 11-27-2016 at 01:05 PM..
This User Gave Thanks to Scrutinizer For This Post:
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Diamond operator in Until Statement (perl)

Hello: I have the following perl script which is giving me trouble inside the second elsif statement. The purpose of the script is to go through a file and print out only those lines which contain pertinent information. The tricky part came when I realized that certain items actually spanned... (5 Replies)
Discussion started by: erichpowell
5 Replies

2. Shell Programming and Scripting

Fun with awk

uggc://ra.jvxvcrqvn.bet/jvxv/EBG13 #!/usr/bin/awk -f BEGIN { for (n=0;n<26;n++) { x=sprintf("%c",n+65); y=sprintf("%c",(n+13)%26+65) r=y; r=tolower(y) } } { b = "" for (n=1; x=substr($0,n,1); n++) b = b ((y=r)?y:x) print b } ... (0 Replies)
Discussion started by: colemar
0 Replies

3. Shell Programming and Scripting

More fun with awk

#!/usr/bin/ksh ls -l $@ | awk ' /^-/ { l = 5*log($5) h = sprintf("%7d %-72s",$5,$8) print "\x1B ls command with histogram of file sizes. The histogram scale is logaritmic, to avoid very short bars for smaller files or very long bars for bigger files. Screenshot: (4 Replies)
Discussion started by: colemar
4 Replies

4. Shell Programming and Scripting

Perl Diamond Operator

I know that when using 'while (<FILE>) {}', Perl reads only one line of the file at one time, and store it in '$_'. Can I change some parameters so that 'while (<>) {}' can read more than one lines, like 2 or 5 lines at one time? Thanks for the help! (1 Reply)
Discussion started by: zx1106
1 Replies

5. UNIX for Dummies Questions & Answers

fun and easy awk question

I have a file called mytitles.txt containing a list of book titles I have a second file called abfile.txt containing a list of book titles (in the 3rd field) and it has author info and copyright year info as well.. I want to search mytitles.txt for a match in the 3rd field of abfiles.txt, and... (2 Replies)
Discussion started by: glev2005
2 Replies

6. What is on Your Mind?

Place your bets! - Ryder Cup 2012 (Golf)

Who will win the 2012 Ryder Cup. Europe vs USA There is an open event in the Event Prediction Forum. The event closes on 27th Sep 2012. 2012 Ryder Cup - Wikipedia, the free encyclopedia (0 Replies)
Discussion started by: ni2
0 Replies

7. Shell Programming and Scripting

To print diamond asterisk pattern based on inputs

I have to print the number of stars that increases on each line from the minimum number until it reaches the maximum number, and then decreases until it goes back to the minimum number. After printing out the lines of stars, it should also print the total number of stars printed. I have tried... (13 Replies)
Discussion started by: rohit_shinez
13 Replies
HXNORMALIZE(1)							  HTML-XML-utils						    HXNORMALIZE(1)

NAME
hxnormalize - pretty-print an HTML file SYNOPSIS
hxnormalize [ -x ] [ -e ] [ -d ] [ -s ] [ -L ] [ -i indent ] [ -l line-length ] [ -c commentmagic ] [ file-or-URL ] DESCRIPTION
The hxnormalize command pretty-prints an HTML file, and also tries to fix small errors. The output is the same HTML, but with a maximum line length and with optional indentation to indicate the nesting level of each line. OPTIONS
The following options are supported: -x Use XML conventions: empty elements are written with a slash at the end: <IMG />. Implies -e. -e Always insert endtags, even if HTML does not require them (for example: </p> and </li>). -d Omit the DOCTYPE from the output. -i indent Set the number of spaces to indent each nesting level. Default is 2. Not all elements cause an indent. In general, elements that can occur in a block environment are started on a new line and cause an indent, but inline elements, such as EM and SPAN do not cause an indent. -l line-length Sets the maximum length of lines. hxnormalize will wrap lines so that all lines are as long as possible, but no longer than this length. Default is 72. Words that are longer than the line length will not be broken, and will extend past this length. A content of the STYLE, SCRIPT and PRE elements will not be line-wrapped. -s Omit <span> tags that don't have any attributes. -L Remove redundant "lang" and "xml:lang" attributes. (I.e., those whose value is the same as the language inherited from the parent element.) -c commentmagic Comments are normally placed right after the preceding text. That is usually correct for short comments, but some comments are meant to be on a separate line. commentmagic is a string and when that string occurs inside a comment, hxnormalize will output an empty line before that comment. E.g. -c "====" can be used to put all comments that contain "====" on a separate line, pre- ceded by an empty line. By default, no comments are treated that way. OPERANDS
The following operand is supported: file-or-URL The name or URL of an HTML file. If absent, standard input is read instead. EXIT STATUS
The following exit values are returned: 0 Successful completion. > 0 An error occurred in the parsing of the HTML file. hxnormalize will try to correct the error and produce output anyway. ENVIRONMENT
To use a proxy to retrieve remote files, set the environment variables http_proxy and ftp_proxy. E.g., http_proxy="http://localhost:8080/" BUGS
The error recovery for incorrect HTML is primitive. hxnormalize will not omit an endtag if the white space after it could possibly be significant. E.g., it will not remove the first </p> from "<div><p>text</p> <p>text</p></div>". hxnormalize can currently only retrieve remote files over HTTP. It doesn't handle password-protected files, nor files whose content depends on HTTP "cookies." SEE ALSO
asc2xml(1), xml2asc(1), UTF-8 (RFC 2279) 6.x 10 Jul 2011 HXNORMALIZE(1)
All times are GMT -4. The time now is 12:57 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy