I have a list of interfaces and time the interface was last active. I can't figure out how to convert the time in the second column,
Fa1/14 0
Se0/0/0 0
Fa1/11 0
Fa1/9 0
Fa1/0 0
Se0/0/1 1240401408
Gi1/0 0
Fa0/0 1240401408
Fa1/3 0
Fa1/8 0
Fa1/15 0
Fa1/13 0
Fa1/10 0
Fa1/1 0
Fa1/12 1240401408
Fa0/1 1240401408
Fa1/5 1240401408
Fa1/6 0
Se0/0/0.1 0
Fa1/7 0
Fa1/2 0
Lo0 0
Fa1/4 1240401408
Can this be done with shell?
many ways to skin that cat.
if you're Solaris:
#!/bin/ksh
file='interfaces.txt'
while read inter time
do
printf "%s %s\n" "${inter}" "$(echo "0t${time}=Y" | /usr/bin/adb)"
done < "${file}"
joeyg
3
The zero values give an unusual (although technically correct) answer.
> cat proc13.sh
#/usr/bin/bash
while read param etime
do
echo $param $(date '+%Y-%m-%d' -d @$etime)
done <file13
> proc13.sh
Fa1/14 1969-12-31
Se0/0/0 1969-12-31
Fa1/11 1969-12-31
Fa1/9 1969-12-31
Fa1/0 1969-12-31
Se0/0/1 2009-04-22
Gi1/0 1969-12-31
Fa0/0 2009-04-22
Fa1/3 1969-12-31
Fa1/8 1969-12-31
Fa1/15 1969-12-31
Fa1/13 1969-12-31
Fa1/10 1969-12-31
Fa1/1 1969-12-31
Fa1/12 2009-04-22
Fa0/1 2009-04-22
Fa1/5 2009-04-22
Fa1/6 1969-12-31
Se0/0/0.1 1969-12-31
Fa1/7 1969-12-31
Fa1/2 1969-12-31
Lo0 1969-12-31
Fa1/4 2009-04-22
Thanks for the replys.
I went about this a different way. But now I have a different issue.
Here is my code.
#!/bin/bash
file='file.txt'
while read inter time
do
printf "%s %s\n" "${inter}" "perl -e 'print scalar localtime("${time}") . "\n";"
done < "${file}"
This is the result.
Fa1/14 perl -e 'print scalar localtime(0) . n;
Se0/0/0 perl -e 'print scalar localtime(0) . n;
Fa1/11 perl -e 'print scalar localtime(0) . n;
Fa1/9 perl -e 'print scalar localtime(0) . n;
Fa1/0 perl -e 'print scalar localtime(0) . n;
Se0/0/1 perl -e 'print scalar localtime(1240421065) . n;
Gi1/0 perl -e 'print scalar localtime(0) . n;
Fa0/0 perl -e 'print scalar localtime(1240421065) . n;
Fa1/3 perl -e 'print scalar localtime(0) . n;
Fa1/8 perl -e 'print scalar localtime(0) . n;
Fa1/15 perl -e 'print scalar localtime(0) . n;
Fa1/13 perl -e 'print scalar localtime(0) . n;
Fa1/10 perl -e 'print scalar localtime(0) . n;
Fa1/1 perl -e 'print scalar localtime(0) . n;
Fa1/12 perl -e 'print scalar localtime(1240421065) . n;
Fa0/1 perl -e 'print scalar localtime(1240421065) . n;
Fa1/5 perl -e 'print scalar localtime(0) . n;
Fa1/6 perl -e 'print scalar localtime(0) . n;
Se0/0/0.1 perl -e 'print scalar localtime(0) . n;
Fa1/7 perl -e 'print scalar localtime(0) . n;
Fa1/2 perl -e 'print scalar localtime(0) . n;
Lo0 perl -e 'print scalar localtime(0) . n;
Fa1/4 perl -e 'print scalar localtime(1240421065) . n;
I tried running perl -x script.sh but that does not work.
#!/bin/bash
file='file.txt'
while read inter time
do
printf "%s %s\n" "${inter}" "$(perl -e 'print scalar localtime("${time}") . "\n";')"
done < "${file}
Hmm, different issue now? The $time variable is not being passed for some reason.
Fa1/14 Wed Dec 31 20:00:00 1969
Fa1/11 Wed Dec 31 20:00:00 1969
Se0/0/0 Wed Dec 31 20:00:00 1969
Fa1/9 Wed Dec 31 20:00:00 1969
Fa1/0 Wed Dec 31 20:00:00 1969
Fa1/3 Wed Dec 31 20:00:00 1969
Fa0/0 Wed Dec 31 20:00:00 1969
Gi1/0 Wed Dec 31 20:00:00 1969
Se0/0/1 Wed Dec 31 20:00:00 1969
Fa1/8 Wed Dec 31 20:00:00 1969
Fa1/15 Wed Dec 31 20:00:00 1969
Fa1/13 Wed Dec 31 20:00:00 1969
Fa1/10 Wed Dec 31 20:00:00 1969
Fa1/12 Wed Dec 31 20:00:00 1969
Fa1/1 Wed Dec 31 20:00:00 1969
Fa0/1 Wed Dec 31 20:00:00 1969
Fa1/6 Wed Dec 31 20:00:00 1969
Fa1/5 Wed Dec 31 20:00:00 1969
Se0/0/0.1 Wed Dec 31 20:00:00 1969
Fa1/7 Wed Dec 31 20:00:00 1969
Fa1/2 Wed Dec 31 20:00:00 1969
Lo0 Wed Dec 31 20:00:00 1969
Fa1/4 Wed Dec 31 20:00:00 1969
sorry - my bad:
#!/bin/bash
file='file.txt'
while read inter time
do
printf "%s %s\n" "${inter}" "$(perl -e 'print scalar localtime('"${time}"') . "\n";')"
done < "${file}
I tried just about every different ',"."" possible. This is going to be a learning expereince. Thanks for the help.