Combine files with same name


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Combine files with same name
# 1  
Old 01-10-2008
Combine files with same name

I need a script that combines files with the same name. These files are on a windows directory but the PC has Cygwin so i have a limited unix command set.

What I've got;
WebData_9_2007-09-20.txt
WebData_9_2007-09-20.txt
WebData_9_2007-09-21.txt
WebData_9_2007-09-20.txt
WebData_9_2007-09-22.txt
WebData_9_2007-09-22.txt
WebData_9_2007-09-22.txt
WebData_9_2007-09-25.txt

What i need;
WebData_9_2007-09-20.txt
WebData_9_2007-09-21.txt
WebData_9_2007-09-20.txt
WebData_9_2007-09-22.txt
WebData_9_2007-09-25.txt

I Appreciate any help.
# 2  
Old 01-10-2008
?

How do you have 2 files with the same name?
# 3  
Old 01-10-2008
Sorry, I left this out...

The number in _9_ position can change. Someone talked about an awk script they found but I'm still researching.
# 4  
Old 01-10-2008
Ok this is just quick and I am sure that someone could make this a lot cleaner anyway try this script just change it for each _?_ you have.

All files which end in 20.txt have the word Hi in them.

# ls -latr
-rw-r--r-- 1 root root 0 Jan 10 20:14 WebData_9_2007-09-21.txt
-rw-r--r-- 1 root root 0 Jan 10 20:14 WebData_7_2007-09-21.txt
-rw-r--r-- 1 root root 0 Jan 10 20:14 WebData_8_2007-09-21.txt
-rw-r--r-- 1 root root 0 Jan 10 20:14 WebData_6_2007-09-21.txt
-rw-r--r-- 1 root root 3 Jan 10 20:16 WebData_6_2007-09-20.txt
-rw-r--r-- 1 root root 3 Jan 10 20:16 WebData_7_2007-09-20.txt
-rw-r--r-- 1 root root 3 Jan 10 20:16 WebData_8_2007-09-20.txt
-rw-r--r-- 1 root root 3 Jan 10 20:16 WebData_9_2007-09-20.txt

Script
--------------------- CUT ---------------------------------
#!/bin/sh
#
# combo for the 20.txt
#
x="20.txt"
y=` ls -la |grep "20.txt" |awk '{print $9 }'|cut -f1 -d '_'|head -1`
z=` ls -la |grep "20.txt" |awk '{print $9 }'|cut -f3 -d '_'|head -1`
#
for i in `ls -la |grep $x |awk '{print $9 }'`
do
cat $i >> $y"_all_"$z
done

--------------------- CUT ---------------------------------

Make script executable chmod 755 whatever

Run script from dir with files

./combo.sh

# ls -la
total 72
drwxr-xr-x 2 root root 4096 Jan 10 20:38 .
drwxr-xr-x 9 root root 4096 Jan 10 20:38 ..
-rw-r--r-- 1 root root 3 Jan 10 20:16 WebData_6_2007-09-20.txt
-rw-r--r-- 1 root root 0 Jan 10 20:14 WebData_6_2007-09-21.txt
-rw-r--r-- 1 root root 3 Jan 10 20:16 WebData_7_2007-09-20.txt
-rw-r--r-- 1 root root 0 Jan 10 20:14 WebData_7_2007-09-21.txt
-rw-r--r-- 1 root root 3 Jan 10 20:16 WebData_8_2007-09-20.txt
-rw-r--r-- 1 root root 0 Jan 10 20:14 WebData_8_2007-09-21.txt
-rw-r--r-- 1 root root 3 Jan 10 20:16 WebData_9_2007-09-20.txt
-rw-r--r-- 1 root root 0 Jan 10 20:14 WebData_9_2007-09-21.txt
-rw-r--r-- 1 root root 12 Jan 10 20:38 WebData_all_2007-09-20.txt

cat new file it will have all text from other files.

cat WebData_all_2007-09-20.txt

Hi
Hi
Hi
Hi

You will need to add a clean up line to remove the other files but this should get you started.

This was done on a fedora linux box will be diff under cygwin...

Good luck...
# 5  
Old 01-10-2008
Quote:
Originally Posted by flatopokey
[code]
...
y=` ls -la |grep "20.txt" |awk '{print $9 }'|cut -f1 -d '_'|head -1`
...
[code]
generally, this is can be stripped down to
Code:
ls -a *20.txt | cut -f1 -d '_'|head -1

since we are not doing anything with the other columns of the ls output except the filename. ( However, also note that the assumption is all filenames are without spaces)

Quote:
Originally Posted by flatopokey
Code:
...
for i in `ls -la |grep $x |awk '{print $9 }'`
do
        cat $i >> $y"_all_"$z 
done

better to use while loop
Code:
ls -a *20.txt | while read files
do
...
done

however, since the purpose is to combine files with 20.txt in the filename, you can just use
Code:
cat *20.txt > outputfile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Automate splitting of files , scp files as each split completes and combine files on target server

i use the split command to split a one terabyte backup file into 10 chunks of 100 GB each. The files are split one after the other. While the files is being split, I will like to scp the files one after the other as soon as the previous one completes, from server A to Server B. Then on server B ,... (2 Replies)
Discussion started by: malaika
2 Replies

2. Shell Programming and Scripting

Combine files

I have n of files with ending with _ZERO.txt need to combine all file ending with _ZERO.txt into 1 file ex: A_ZERO.txt 1 2 B_ZERO.txt 3 4 Output: FINAL.txt 1 2 (3 Replies)
Discussion started by: satish1222
3 Replies

3. Shell Programming and Scripting

combine two files...

Hi, i have two files. i want to combine records from these two files in below manner :- first line from first file(1st line) 2nd line from 2nd file(1st line) 3rd line from 1st file(2nd line) 4th line from 2nd file(2nd line) so on.... (1 Reply)
Discussion started by: deepakiniimt
1 Replies

4. Shell Programming and Scripting

combine multiple files by column into one files already sorted!

I have multiple files; each file contains a certain data in a column view simply i want to combine all those files into one file in columns example file1: a b c d file 2: 1 2 3 4 file 3: G (4 Replies)
Discussion started by: ahmedamro
4 Replies

5. Shell Programming and Scripting

3 files combine into one help please

Ok here is what I have file a {{BEGIN}} {{FAX File b 5555464584 5555465292 5555465828 5555485930 5555474939 File C }} ON ORDERS LESS THAN 70 LBS AND THE PACKAGE IS A COMBINED LENGTH AND GIRTH EQUAL TO OR LESS THAN 108" PLEASE UTILIZE UPS. ... (4 Replies)
Discussion started by: sctxms
4 Replies

6. Shell Programming and Scripting

Combine new files

Hi All , Any one help me to combine two files in shell scripting .Below is my requrement i have 2 files as follows filea newyork America Texas America london Engalad Fileb abc def xyz i have to combine this file as follows newyork America abc Texas ... (1 Reply)
Discussion started by: ajmalc
1 Replies

7. HP-UX

How to combine 2 different files

Hi : I have a file containing the print queues with their IP address. I wanted to combine the 'lpstat' output with their respective IP address. For example : zebhtrmb-6078 lgonzale priority 0 Mar 17 11:50 on zebhtrmb with zebhtrmb-6078 lgonzale priority 0 ... (1 Reply)
Discussion started by: rdasari
1 Replies

8. Shell Programming and Scripting

Need To Combine 2 Files

I have 2 files that I need to combine. One file is looks like this: 71664107;1;1;05-FEB-07;12-FEB-07; The other file looks like this: U;71664107;dummy;Pirovano;M;04-SEP-75;Georgia;MI;1;1;31;S;S;;;Y;05-02-2007;0;12-FEB-07; I need to combine both files together. I need the shorter... (4 Replies)
Discussion started by: goodmis
4 Replies

9. Shell Programming and Scripting

combine two files

I have two files: file1 and file2 the content of files1 is: 13 22 333 42 56 55 ... the content of file2 is: aa dd cc ee ff gg ... (1 Reply)
Discussion started by: fredao1
1 Replies

10. Shell Programming and Scripting

How to combine 2 files

hi all i have 2 files f1 and f2 i have to combine these 2 files and make a new file f3 when i use paste f1 f2 >f3 its pasting vertically but i want to paste horizontally How to do .. pls let me know (2 Replies)
Discussion started by: ravi.sadani19
2 Replies
Login or Register to Ask a Question