08-01-2008
Advanced File Rename help
So, I am so new that I can't even call myself a unix user. I have an aptitude for programing, but I don't know the language. Anyway, here is my problem:
I have to rename a batch of files that look like:
2001_0001.asc
2001_0002.asc
.
.
.
2006_0548.asc
The names are a date code, but they need to be altered such that 2001_0001.asc becomes 2000_183.asc, 2001_0184 becomes 2001_001, and 2006_0548.asc becomes 2006_365.asc.
so, I think it should start like:
for i in `ls*`
do
then things get a bit hazy
I will now convert to semi-programing speak
split aaaa_bbbb.asc into aaaa and bbbb
interpret strings aaaa and bbbb as numbers x and y respectively
if y - 183 < 1,
then x' = x - 1 and y' = y - 183 + 365,
else x' = x and y' = y - 183.
convert numbers x and y to strings aaaa' and bbb' (note the three digits
in bbb such that y' = 1 will convert to bbb' = 001)
rename file i to aaaa'_bbb'.asc
any help would be appreciated
thanks,
-TT
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi there,
I hope someone can help me with this problem :
I have a directory (/var/www/file/imgprofil) which contains about 10000 JPG files. They have a naming convention thus :
prefix-date-key-suffix.jpg
they all have the prefix p-20050608-
then AAAA is a 4 letter code
the suffix is... (7 Replies)
Discussion started by: steve7
7 Replies
2. UNIX for Advanced & Expert Users
I know this is probably a question for the newbie forum, where it is also posted, but I thought maybe some of you pros might like to help me out anyway. Here is my problem:
I have to rename a batch of files that look like:
2001_0001.asc
2001_0002.asc
.
2001_0548.asc
2002_0184.asc
.
.... (0 Replies)
Discussion started by: sea krait
0 Replies
3. UNIX for Dummies Questions & Answers
I'm looking to determine if I can use a grep command to read file and rename the file based on the first 3 characters of the data in the file.
An example is:
Read FileA
If the first 3 positions of the data in the file are "ITP", then rename the file as FileA_ITP, else if the first 3... (3 Replies)
Discussion started by: jchappel
3 Replies
4. Shell Programming and Scripting
I have a file in which email messages are stored in. Every email is separated by by a ^Z character (Control-Z).
I need to extract all emails after the 65,00th one to another file and delete them from the original file.
Any suggests on accomplishing this? (2 Replies)
Discussion started by: maxcell
2 Replies
5. UNIX for Advanced & Expert Users
Hey all.
I need to transfer files from one system to about 5 other systems, and i have to do it manually, and we do get a lot of requests for the same. Presently this is done using a shell script, but it has to be run on each of the 5 systems. Also, a backup of the file needs to be preserved... (6 Replies)
Discussion started by: optimus_1
6 Replies
6. SCO
I'm looking for a 25-user AFPS license - this was a product available on SCO UnixWare 7.1.3 (was superseded by Samba in 7.1.4)
Anyone have one sitting at the back of a cupboard/drawer/garage...
I have a buyer lined up! (1 Reply)
Discussion started by: billbateson
1 Replies
7. Shell Programming and Scripting
Hi. I am not sure the title gives an optimal description of what I want to do. Also, I tried to post this in the "UNIX for Dummies Questions & Answers", but it seems no-one was able to help out.
I have several text files that contain data in many columns. All the files are organized the same... (14 Replies)
Discussion started by: JamesT
14 Replies
8. UNIX for Dummies Questions & Answers
I have one input file ABC.txt and one output DEF.txt. After the ABC is processed and created output, I want to rename ABC.txt to ABC.orig and DEF to ABC.txt. Currently when I am doing this, it does not process the input file as it cannot read and write to the same file. How can I achieve this?
... (12 Replies)
Discussion started by: High-T
12 Replies
9. Shell Programming and Scripting
I have a specific set (all ending with .bam) of downloaded files in a directory /home/cmccabe/Desktop/NGS/API/2-15-2016. What I am trying to do is use a match to $2 in name to rename the downloaded files. To make things a more involved the date of the folder is unique and in the header of name... (1 Reply)
Discussion started by: cmccabe
1 Replies
10. Shell Programming and Scripting
In the below bash I am trying to copy the only text file (always only one) in /home/cmccabe/Desktop/list/QC/metrics.txt and rename each of the 3 text files according to /home/cmccabe/Desktop/test/list.txt using lines 3, 4 ,5. This format (that is list.txt) is always 5 lines. Thank you :).
... (12 Replies)
Discussion started by: cmccabe
12 Replies
LEARN ABOUT REDHAT
ether_aton_r
ETHER_ATON(3) Linux Programmer's Manual ETHER_ATON(3)
NAME
ether_aton, ether_ntoa, ether_ntohost, ether_hosttonn, ether_line, ether_ntoa_r, ether_aton_r - Ethernet address manipulation routines
SYNOPSIS
#include <netinet/ether.h>
char *
ether_ntoa(const struct ether_addr *addr);
struct ether_addr *
ether_aton(const char *asc);
int
ether_ntohost(char *hostname, const struct ether_addr *addr);
int
ether_hostton(const char *hostname, struct ether_addr *addr);
int
ether_line(const char *line, struct ether_addr *addr,
char *hostname);
/* GNU extensions */
char *
ether_ntoa_r(const struct ether_addr *addr, char *buf);
struct ether_addr *
ether_aton_r(const char *asc, struct ether_addr *addr);
DESCRIPTION
ether_aton() converts the 48-bit Ethernet host address asc from the standard hex-digits-and-colons notation into binary data in network
byte order and returns a pointer to it in a statically allocated buffer, which subsequent calls will overwrite. ether_aton returns NULL if
the address is invalid.
The ether_ntoa() function converts the Ethernet host address addr given in network byte order to a string in standard hex-digits-and-colons
notation, omitting leading zeroes. The string is returned in a statically allocated buffer, which subsequent calls will overwrite.
The ether_ntohost() function maps an Ethernet address to the corresponding hostname in /etc/ethers and returns non-zero if it cannot be
found.
The ether_hostton() function maps a hostname to the corresponding Ethernet address in /etc/ethers and returns non-zero if it cannot be
found.
The ether_line() function parses a line in /etc/ethers format (ethernet address followed by whitespace followed by hostname; '#' introduces
a comment) and returns an address and hostname pair, or non-zero if it cannot be parsed. The buffer pointed at by hostname must be suffi-
ciently long, e.g., have the same length as line.
The functions ether_ntoa_r and ether_aton_r are re-entrant threadsafe versions of ether_ntoa and ether_aton respectively, and do not use
static buffers.
The structure ether_addr is defined in net/ethernet.h as:
struct ether_addr {
u_int8_t ether_addr_octet[6];
}
BUGS
The glibc 2.2.5 implementation of ether_line() is broken.
CONFORMING TO
BSD 4.3, SunOS
SEE ALSO
ethers(5)
BSD
2002-07-20 ETHER_ATON(3)