Home > Archive > AWK > February 2005 > Question about awk
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Question about awk
|
|
| Wolfgang Nolden 2005-02-21, 8:55 am |
| Hi everybody,
i have a file with this structure:
@/Skripte/CronBlacklist 20.02.2005
# Version 1.1 | # Version 1.0
--
@/Skripte/Checkmailq 20.02.2005
# Version 1.3 | # Version 1.2
--
@/Skripte/Status2HTML 20.02.2005
# Version 1.1 | # Version 1.0
--
@/Skripte/Backup 19.02.2005
# Version 1.6 | # Version 1.5
--
@/Skripte/Checkmailq 18.02.2005
# Version 1.2 | # Version 1.1
--
@/Skripte/IXUS_330 18.02.2005
# Version 1.1 | # Version 1.0
--
@/Skripte/FTP_HOME_UP 17.02.2005
# Version 1.1 | # Version 1.0
--
@/Skripte/Backup 13.02.2005
# Version 1.5 | # Version 1.4
--
@/Skripte/Backup_Banking 13.02.2005
# Version 2.1 | # Version 2.0
--
@/Skripte/Backup_Fotos 13.02.2005
# Version 1.1 | # Version 1.0
--
@/Skripte/DailyBackup 13.02.2005
# Version 1.2 | # Version 1.1
--
@/Skripte/MakeTest-System 13.02.2005
# Version 2.1 | # Version 2.0
--
@/Skripte/Backup 11.02.2005
# Version 1.4 | # Version 1.3
--
@/Skripte/Backup_Banking 11.02.2005
# Version 1.0 | # Version 2.0
--
@/Skripte/Backup 15.01.2005
# Version 1.3 | # Version 1.2
--
@/Skripte/MakeBeispiele2html 01.01.2005
# Version 1.1 | # Version 1.0
--
@/Skripte/MakeTest-System 01.01.2005
# Version 2.0 | # Version 1.1
--
@/Skripte/Wichtige_Dateien 31.12.2004
/etc/avmailgate.acl <
--
@/Skripte/Checkmailq 31.12.2004
# Version 1.1 | # Version 1.0
--
@/Skripte/DailyBackup 31.12.2004
# Version 1.1 | # Version 1.0
--
@/Skripte/MakeTest-System 31.12.2004
# Version 1.1 | # Version 1.0
--
@/Skripte/Backup 28.12.2004
# Version 1.2 | # Version 1.1
--
@/Skripte/Backup 28.12.2004
# Version 1.1 | # Version 1.0
and so on.
I want an output like this:
@TEXT1 Version2.0 <-- Version1.9 , Version1.9 <-- Version1.8
@TEXT2 Version1.4 <-- Version1.3 , Version1.3 <-- Version1.2
@TEXT3 Version1.5 Version1.4 , Version1.4 Version1.3
or
@TEXT1 Version2.0, Version1.9 ,Version1.8
@TEXT2 Version1.4,Version1.3 ,Version1.2
@TEXT3 Version1.5 , Version1.4 , Version1.3
TEXT(X) is /DESTINATION/TO/A/FILE
i tried for the first output
awk -F "/| " '/^@/ {X=$3}
/^# Version/ {print X,$NF"-->"$3}
' /var/log/SkriptLOG | sort |
awk '{day[$1]=$2}
END {for (TRAF in day)print TRAF,day[TRAF]}' | sort
Backup 1.5-->1.6
Backup_Banking 2.0-->2.1
Backup_Fotos 1.0-->1.1
Checkmailq 1.2-->1.3
DailyBackup 1.1-->1.2
FTP_HOME_UP 1.0-->1.1
IXUS_330 1.0-->1.1
MakeTest-System 2.0-->2.1
Status2HTML 1.0-->1.1
But i don't see this
Backup 1.5-->1.6 , 1.4 -->1.5 and so on
Can someone help me?
Thx for reading
Wolfgang
| |
| Ed Morton 2005-02-21, 3:57 pm |
|
Wolfgang Nolden wrote:
> Hi everybody,
>
> i have a file with this structure:
>
> @/Skripte/CronBlacklist 20.02.2005
> # Version 1.1 | # Version 1.0
> --
> @/Skripte/Checkmailq 20.02.2005
> # Version 1.3 | # Version 1.2
> --
> @/Skripte/Status2HTML 20.02.2005
> # Version 1.1 | # Version 1.0
> --
> @/Skripte/Backup 19.02.2005
> # Version 1.6 | # Version 1.5
> --
<snip>
> I want an output like this:
>
> @TEXT1 Version2.0 <-- Version1.9 , Version1.9 <-- Version1.8
> @TEXT2 Version1.4 <-- Version1.3 , Version1.3 <-- Version1.2
> @TEXT3 Version1.5 Version1.4 , Version1.4 Version1.3
<snip>
> TEXT(X) is /DESTINATION/TO/A/FILE
>
> i tried for the first output
>
> awk -F "/| " '/^@/ {X=$3}
> /^# Version/ {print X,$NF"-->"$3}
> ' /var/log/SkriptLOG | sort |
> awk '{day[$1]=$2}
> END {for (TRAF in day)print TRAF,day[TRAF]}' | sort
Try this:
awk '
/^@/{split($1,a,"/"); file=a[3]; files[file]=""}
/^# Version/ {v[file]=v[file] sep[file] $2$3 "<--" $6$7;sep[file]=" , "}
END { for (file in files) print file, v[file] }'
If you want the full path to the file, just get rid of the "split" on
the first line - I just put it in because that's what you appear to be
attempting by including "/" in your FS.
If you want the output sorted but want to stay within awk, use "gawk"
and lookup "asort()" and "asorti()" in the user guide.
Regards,
Ed.
| |
| Wolfgang Nolden 2005-02-21, 3:57 pm |
| Hi Ed,
thank you very much for your answer. It is exactly that what i want :-)
Here is the output:
Backup_hda5_Wechselplatte_tar_split Version1.2<--Version1.1
IXUS_330 Version1.1<--Version1.0
Status2HTML Version1.1<--Version1.0
Checkmailq Version1.3<--Version1.2 , Version1.2<--Version1.1 ,
Version1.1<--Version1.0
Backup_Fotos Version1.1<--Version1.0
MakeBeispiele2html Version1.1<--Version1.0
[....]
Thank you very much
Wolfgang
| |
| Wolfgang Nolden 2005-02-24, 3:55 pm |
| Hi Ed,
thank you very much for your answer. It is exactly that what i want :-)
Here is the output:
Backup_hda5_Wechselplatte_tar_split Version1.2<--Version1.1
IXUS_330 Version1.1<--Version1.0
Status2HTML Version1.1<--Version1.0
Checkmailq Version1.3<--Version1.2 , Version1.2<--Version1.1 ,
Version1.1<--Version1.0
Backup_Fotos Version1.1<--Version1.0
MakeBeispiele2html Version1.1<--Version1.0
[....]
Thank you very much
Wolfgang
|
|
|
|
|