Paste and double loop


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Paste and double loop
# 1  
Old 04-01-2015
Error Paste and double loop

I have 2 directories and both had the same number of files with exactly same names but different content... I want to combine them horizontally but somehow I am stock

I think I need && to get the correct loop or maybe a filename? not sure...
this is what I have got for far which is not correct as it keeps looping until the dir 1 is done

Code:
FILE1="dir1/*"
for Q in $FILE1
do
	name=$(basename $Q) 
	FILE2="dir2/*"
	for T in $FILE2
	do
		names=$(basename $T) 
		paste -d, $Q $T > new/${names}
	done
done

thanks for helping
# 2  
Old 04-01-2015
Code:
[akshay@localhost tmp]$ cat test.sh
#!/usr/bin/env bash

dir1="/tmp/test1/*.txt"
dir2="/tmp/test2"
output="/tmp/new"


mkdir -p $output

for i in $dir1; do 

	filename=${i##*/}

	file="$dir2/$filename"

	paste -d, $i $file >$output/$filename

done

Test

Code:
[akshay@localhost tmp]$ mkdir test1 test2; for i in $(seq 1 5); do  date >test1/$i.txt; date  >test2/$i.txt; done

Code:
[akshay@localhost tmp]$ for i in test1/*; do echo $i; cat $i ; done
test1/1.txt
Wed Apr  1 10:02:48 IST 2015
test1/2.txt
Wed Apr  1 10:02:48 IST 2015
test1/3.txt
Wed Apr  1 10:02:48 IST 2015
test1/4.txt
Wed Apr  1 10:02:48 IST 2015
test1/5.txt
Wed Apr  1 10:02:48 IST 2015

Code:
[akshay@localhost tmp]$ for i in test2/*; do echo $i; cat $i ; done
test2/1.txt
Wed Apr  1 10:02:48 IST 2015
test2/2.txt
Wed Apr  1 10:02:48 IST 2015
test2/3.txt
Wed Apr  1 10:02:48 IST 2015
test2/4.txt
Wed Apr  1 10:02:48 IST 2015
test2/5.txt
Wed Apr  1 10:02:48 IST 2015

Code:
[akshay@localhost tmp]$ bash test.sh
[akshay@localhost tmp]$ for i in new/*; do echo $i; cat $i ; done
new/1.txt
Wed Apr  1 10:02:48 IST 2015,Wed Apr  1 10:02:48 IST 2015
new/2.txt
Wed Apr  1 10:02:48 IST 2015,Wed Apr  1 10:02:48 IST 2015
new/3.txt
Wed Apr  1 10:02:48 IST 2015,Wed Apr  1 10:02:48 IST 2015
new/4.txt
Wed Apr  1 10:02:48 IST 2015,Wed Apr  1 10:02:48 IST 2015
new/5.txt
Wed Apr  1 10:02:48 IST 2015,Wed Apr  1 10:02:48 IST 2015


Last edited by Akshay Hegde; 04-01-2015 at 01:56 AM..
This User Gave Thanks to Akshay Hegde For This Post:
# 3  
Old 04-01-2015
thanks a lot for your help, it worked nicely..
may I ask you to explain few things ?

why the dir1 structure is different from dir2 ?
Code:
dir1="/tmp/test1/*.txt"
dir2="/tmp/test2"

and what does this line do?
Code:
	file="$dir2/$filename"

# 4  
Old 04-01-2015
Quote:
Originally Posted by A-V
thanks a lot for your help, it worked nicely..
may I ask you to explain few things ?

why the dir1 structure is different from dir2 ?
Code:
dir1="/tmp/test1/*.txt"
dir2="/tmp/test2"

and what does this line do?
Code:
	file="$dir2/$filename"

I used files from dir1 as reference since you said same number of files with exactly same names, $i is file from dir1 and $file is file from dir2 to understand clearly, better you insert below line after file="$dir2/$filename"
Code:
echo "$i $file"

and filename=${i##*/} is parameter substitution is used instead of external basename program. Let me know if you still have confusion.
This User Gave Thanks to Akshay Hegde For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

paste mutiple files in a loop

file1.txt file2.txt file3.txt desired output is each file is in the same directory, hasthe same number of columns but different rows. i want to be able to paste them into one file. thanks! (5 Replies)
Discussion started by: johnkim0806
5 Replies

2. Shell Programming and Scripting

awk, double variable, for loop and rsh

Hello folks, I've a (perhaps) simple question. In a text file I've : server_name1: directory1 server_name2: directory2 server_name3: directory3 I want to make a loop that lets me connect and operate on every server: rsh server_name1 "ls -l directory1" I've tried with awk,... (6 Replies)
Discussion started by: gogol_bordello
6 Replies

3. Shell Programming and Scripting

need a perl replacement for this double for loop

hi everybody, can you help me with this? important: it has to be a pure perl code. zz.lis: accessibility arabic archivers astro audio benchmarks . . . "ls accessibility | grep -v Makefile" outputs accerciser at-poke at-spi at-spi-reference (6 Replies)
Discussion started by: pseudocoder
6 Replies

4. UNIX for Dummies Questions & Answers

Rename files with sed in an until loop (double post)

I want to change the name of some of my files (mypics-0001, mypics-0002, mypics-0003.....mypics-0240) and I want to double check to see if this code is right: x=0 until do sed 's/mypics\-*/bday/g' done Would this change all of my file names to "bday0001....bday0240"? Please let me... (0 Replies)
Discussion started by: jvpike
0 Replies

5. UNIX for Dummies Questions & Answers

Paste

paste -d "\0" ap_cntrl_total.txt.1 ap_cntrl_total.txt.2, and it shows: 01234567890911051342C091026 0000910517990000000000009105179900000000CHOPME it put space btwn 1026 and 000091 should not have space. ---------- Post updated at 03:54 PM ---------- Previous update was at 03:03 PM... (1 Reply)
Discussion started by: tjmannonline
1 Replies

6. Shell Programming and Scripting

cut and paste?

hi, I have a file with content like this for an employee: EmployeeID 101 Day_type, day vacation,1/2/2009 sick day, 3/2/2009 personal day, 4/5/2009 jury duty day, 5/5/2009 how do I make the result to show: EmployeeID,Day_type,day 101,vacation,1/2/2009 101,sick day,... (6 Replies)
Discussion started by: jbchen
6 Replies

7. Shell Programming and Scripting

why double brackets for array loop?

Dear All, Recently got some sample from internet search for array handle in shell script, and I can not understand why we need to put double brackets when extracting array values by this way : for ((i=0; i<${#admins}; i++)); do echo "${admins}" done if modify from double to single... (2 Replies)
Discussion started by: tiger2000
2 Replies

8. Programming

double pow (double x, double y) -- problems

This is the code and I'm wondering why line 14: a = ... and line 16: b = ... is wrong. This is the first time I've tried to use this. Please help me. #include <stdio.h> #include <math.h> // The link and how the double pow is used. // // http://www.nextdawn.nl/c-reference/pow.php //... (2 Replies)
Discussion started by: pwanda
2 Replies

9. UNIX for Dummies Questions & Answers

VI paste out of alignment

We have a guy at work who is trying to copy and paste from one file to another using vi and highlighting the code to copy with a mouse. Source file: xyz 123 abc 999 zyx 321 cba 999 xyz 123 abc 999 But when he pastes it he gets (I put the underlines in to show... (4 Replies)
Discussion started by: dlam
4 Replies

10. Shell Programming and Scripting

aside from paste

how can i make a script or command to have output like this $cat file 10000 20000 $cat a 10000 $cat b 20000 this is the solution paste a b > file but another solution? $cat file 10000 20000 (3 Replies)
Discussion started by: kenshinhimura
3 Replies
Login or Register to Ask a Question