Re: using awk for selective printing, and adding a new line

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: jon@xxxxxxxxxx
> Sent: Mon, 09 May 2016 18:45:30 -0400
> To: wingators@xxxxxxxxx
> Subject: Re: using awk for selective printing, and adding a new line
> 
> On Mon, May 09, 2016 at 02:26:07PM -0800, Antonio Olivares wrote:
>> 
>> 
>>> It would be much easier to leave it as one field per line.
>>> 
>>> 
>>> awk '
>>> BEGIN { f[1] = 4; f[2] = -14
>>> 	f[3] = f[4] = f[5] = f[6] = f[7] = f[8] = f[9] = f[10] = 3
>>> }
>>> { printf ("%*s%c", f[NR%10], $0, NR%10 ? " " : "\n") }
>>> ' $1
>>> 
>>> --
>> 
>> Dear Jon,
>> 
>> I like your solution, but I get different output:
>> 
>> $ awk ' BEGIN { f[1] = 4; f[2] = -14 f[3] = f4 = f[5] = f[6] = f[7] =
>> f[8] = f[9] = f[10] = 3 } { printf ("%*s%c",f[NR%10], $0, NR%10 ? " " :
>> "\n") }' tablagr2.dat
> 
> Notice my BEGIN line is broken into 2 lines.  If you want to join
> them you must put a semicolon after the "-14".
> 
>> awk: syntax error at source line 1
>>  context is
>>          BEGIN { f[1] = 4; f[2] = -14 f[3] >>>  = <<<  f4 = f[5] = f[6]
>> = f[7] = f[8] = f[9] = f[10] = 3 } { printf ("%*s%c",f[NR%10], $0, NR%10
>> ? " " : "\n") }
>> awk: illegal statement at source line 1
>> 
>> $ awk ' BEGIN { f[1] = 4; f[2] = -14; f[3] = f4 = f[5] = f[6] = f[7] =
>> f[8] = f[9] = f[10] = 3 } { printf ("%*s%c",f[NR%10], $0, NR%10 ? " " :
>> "\n") }' tablagr2.dat
> 
> Ok, you did that.
> 
>> 
>> Pos.    Equipo  JJ      JG      JE      JP      GF      GC      DIF
>> PTS    1Monterrey       17      12      1       4       38      23
>> 15      37     2Pachuca 17      8       6       3       31      16
>> 15      30      3      Leon     17      9       3       5       29
>> 19      10      30      4      America  17      8       5       4
>> 34      22      12      29      5      Chivas   17      7       7
>> 3       26      16      10      28      6      Morelia  17      8
>> 4       5       25      24      1       28      7      Santos   17
>> 8       3       6       22      20      2       27      8      Tigres
>> 17      6       6       5       29      19      10      24      9
>> CruzAzul 17      5       7       5       25      24      1       22
>> 10     Pumas    17      5       7       5       23      24      -1
>> 22      11     Toluca   17      5       7       5       20      21
>> -1      22      12     Puebla   17      5       7       5       21
>> 26      -5      22      13     ClubQueretaro    17      5       4
>> 8       21      26      -5      19     14       ClubTijuana     17
>> 3       9       5       17      26      -9     18       15      Atlas
>> 17      3       5       9       18      26      -8     14       16
>> Dorados 17      4       2       11      18      32      -14    14
>> 17      Veracruz        17      2       8       7       18      34
>> -16      14      18      ChiapasFC       17      3       3       11
>> 16     33       -17     12
>> $
>> 
>> $ awk ' BEGIN { f[1] = 4; f[2] = -14; f[3] = f4 = f[5] 9] = f[10] = 3 }
>> { printf ("%*s%c",f[NR%10], $0, NR%10 ? " " : "\n") }'
>> tablageneral20160509.dat
>> 
>> 
>> to get the nice output I have to do it in two steps,
>> 1) copy the contents of the website to a file, then
>> 2) run/pipe the command to
>>  awk '{printf("%s ",$0)}' filename > newfilename
>> 
> 
> My program should be run using the data from 1),
> i.e.
> Pos.
> Equipo
> JJ
> JG
> ...
> Cruz Azul
> 17
> ...
> 
>> 
>> The names are in two, Cruz Azul, combined into Cruz Azul, Chiapas FC ->
>> ChiapasFC, Club Tijuana, Club Queretaro, I have to combine them into 1
>> so the data can format nicely.  If the commands could be combined to do
>> it in one shot, it would be nice, but the names will be a problem.
> 
> You don't have to squish them.
> 
>> 
>> The data is from :
>> http://www.mediotiempo.com/tabla_general.php?id_liga=1&id_torneo=591
>> 
>> I select copy the data and paste it into a file, then I have to remove
>> the "\n" and then take the 10 items per line.  It looks easy, but it
>> takes some time.
>> 
> 
> I just cut and pasted that data into a file and ran my program on it.
> There were no column headings, but you can add that in the BEGIN
> statement
> if you want.
> 
> My program formatted the data fine for me.  The only problem I see is
> the website has a little icon before each team name.  That might have
> to be removed.
> 
> 
>    1 Monterrey      17  12   1   4  38  23  15 37
>    2 Pachuca        17   8   6   3  31  16  15 30
>    3 León           17   9   3   5  29  19  10 30
>    4 América        17   8   5   4  34  22  12 29
>    5 Chivas         17   7   7   3  26  16  10 28
>    6 Morelia        17   8   4   5  25  24   1 28
>    7 Santos         17   8   3   6  22  20   2 27
>    8 Tigres         17   6   6   5  29  19  10 24
>    9 Cruz Azul      17   5   7   5  25  24   1 22
>   10 Pumas          17   5   7   5  23  24  -1 22
>   11 Toluca         17   5   7   5  20  21  -1 22
>   12 Puebla         17   5   7   5  21  26  -5 22
>   13 Club Querétaro  17   5   4   8  21  26  -5 19
>   14 Club Tijuana   17   3   9   5  17  26  -9 18
>   15 Atlas          17   3   5   9  18  26  -8 14
>   16 Dorados        17   4   2  11  18  32 -14 14
>   17 Veracruz       17   2   8   7  18  34 -16 14
>   18 Chiapas FC     17   3   3  11  16  33 -17 12
> 
> 
> 
> Jon
> --
> Jon H. LaBadie                 jon@xxxxxxxxxx
>  11226 South Shore Rd.          (703) 787-0688 (H)
>  Reston, VA  20190              (703) 935-6720 (C)

I do not get the same output.  I have the file 
formatabla.sh as follows:

#!/bin/sh 

# Check for arguments
if [ $# -eq 0 ]; then
    echo "Usage: $(basename $0) filename"
    exit 1
fi

if [ ! -f $1 ]; then
    echo "File "$1" doesn't exist!"
    exit 0
fi

awk '
BEGIN { f[1] = 4; f[2] = -14
        f[3] = f[4] = f[5] = f[6] = f[7] = f[8] = f[9] = f[10] = 3
}
{ printf ("%*s%c", f[NR%10], $0, NR%10 ? " " : "\n") }
' $1

$ sh formatablagrl.sh tablageneral0510.dat 
   1                  Monterrey           17      12       1 
   4                   38         23      15      37 2
         Pachuca                  17       8       6     3
         31                       16      15      30   3 
León                   17          9       3       5 
  29                   19         10      30   4         América
         17                        8       5       4     34
         22                       12      29   5         Chivas 
  17                    7          7       3      26 
  16                   10         28   6         Morelia         17
         8                         4       5      25     24
         1                        28   7         Santos           17 
   8                    3          6      22      20 
   2                   27   8            Tigres           17     6
         6                         5      29      19     10
         24               9      Cruz Azul        17       5 
   7                    5         25      24       1 
  22 10                  Pumas            17       5     7
         5                        23      24      -1     22
  11                  Toluca      17       5       7 
   5                   20         21      -1      22 12
         Puebla                   17       5       7     5
         21                       26      -5      22  13 
Club Querétaro                 17          5       4       8 
  21                   26         -5      19  14         Club Tijuana
         17                        3       9       5     17
         26                       -9      18  15         Atlas 
  17                    3          5       9      18 
  26                   -8         14  16         Dorados         17
         4                         2      11      18     32
         -14                      14  17         Veracruz         17 
   2                    8          7      18      34 
 -16                   14  18            Chiapas FC       17     3
         3                        11      16      33     -17
         12                 $ 

Is the program exactly the same or it is a bit different?  

i just copied and pasted and ran the program.  Or do I need to pipe it two times?  


Best Regards,


Antonio

____________________________________________________________
FREE ONLINE PHOTOSHARING - Share your photos online with your friends and family!
Visit http://www.inbox.com/photosharing to find out more!

--
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
http://lists.fedoraproject.org/admin/lists/users@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux