Shell Script to append files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell Script to append files
# 1  
Old 09-11-2010
Shell Script to append files

I have several content (text) files in a folder called "content"

I have several google ads (text) files in a folder called "google_ads"

Example:

Code:
/content
    /java
       websphere.txt
       android.txt
   /microsoft
      framework.txt
      /c_sharp
         linq.txt

Code:
/google_ads
    /java
       websphere.txt
       android.txt
   /microsoft
      framework.txt
      /c_sharp
         linq.txt

I want to create a shell script that appends the files together and produces them in a "publish" folder

Code:
/publish
     /java
        websphere.txt
        android.txt
    /microsoft
       framework.txt
       /c_sharp
          linq.txt

How do I go about doing this?
# 2  
Old 09-12-2010
cat is your friend there

Code:
cat file_one file_two file_three > publish_folder/big_mother_file

This User Gave Thanks to Aia For This Post:
# 3  
Old 09-12-2010
Quote:
Originally Posted by Aia
cat is your friend there

Code:
cat file_one file_two file_three > publish_folder/big_mother_file

yes. but I have 100s / 1000s of files (in several sub directories).

How do I do this in a recursive fashion?
# 4  
Old 09-12-2010
yes

Code:
cat content/*.txt google_ads/*.txt foobar/*.txt >publish.file


if you hit a maximum arguments error try this.

Code:
find . -name \*.txt -exec cat {} \; > publish.file

# 5  
Old 09-12-2010
Try to run this on a script. You should be on the parent directory of content and google_ads
Code:
#!/bin/bash

function main {
	while read LINE; do
		LINE=${LINE#*/}
		echo "creating directory publish/$LINE..." || {
			echo "failed."
			return 1
		}
		mkdir -p "publish/$LINE"
	done < <(exec find content/ -type d)

	while read LINE; do
		LINE=${LINE#*/}
		echo "making file publish/$LINE..."
		{
			cat "content/$LINE"
			[[ ! -f google_ads/$LINE ]] || cat "google_ads/$LINE"
		} > "publish/$LINE"
		[[ $? -eq 0 ]] || {
			echo "failed."
			return 1
		}
	done < <(exec find content/ -type f -iname '*.txt')
}

main

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need shell script to append double quotes for each column in a file

Hi Experts, I am beginner to the shell scripting, My requirement is to append double quotes for each column in a file if double quotes does not exist. Example: "abc"|123|"gh-ch"|23.067 Use code tags, thanks. (10 Replies)
Discussion started by: spidy
10 Replies

2. Shell Programming and Scripting

Append date to sql*plus spool (log) file in shell script

SQL*Plus version : 11.2.0.4 OS : Oracle Linux 6.5 SQL*Plus is a client application to connect to oracle database. The log file for this tool is generated via spool command as shown below. I am trying to append date ( $dateString ) to spool file as shown below. $ cat test2.sh #!/bin/bash... (4 Replies)
Discussion started by: kraljic
4 Replies

3. Shell Programming and Scripting

Needed shell script to append desired text to each line in a file

Hi, I had generated a report in my tool as followsoutput.txt 43.35 9 i needed the script to generate a new file like below i want to append the text to each of these lines of my filenewoutputfile.txt should be Total Amount : 43.35 Record Count:9 Regards, Vasa Saikumar. ... (2 Replies)
Discussion started by: hemanthsaikumar
2 Replies

4. Shell Programming and Scripting

append dates going forward from today to certain line in shell script

Hi there, I have a requirement to append dates going forward to a certain line in a file. I'm not sure of how to go about this. Any help will be greatly appreciated. Thanks Slyesco:wall: (2 Replies)
Discussion started by: Slyesco
2 Replies

5. Shell Programming and Scripting

Append color in shell script for output

Hi Experts, I want to get my shell script output in a color for a particular word. PFB my output. TT.QM.JTV1S1 TLORSBT2.JMR701T1.C1 REPOS TT.QM.JTV1R1 TLORSBF2.JMR701T1.C1 NORMAL whenever REPOS word comes then entire line should come in red color. Can you please help me... (4 Replies)
Discussion started by: darling
4 Replies

6. Shell Programming and Scripting

shell script - to append single quotes and comma

file1 ---- 34556745 32678343 31576776 31455566 21356666 I want to assign the record values to a variable in the below format, so that I can use output in .sql file for querying in database. ('34556745', '32678343', '31576776', '31455566', '21356666') ----------- below is the... (11 Replies)
Discussion started by: rajivrsk
11 Replies

7. Shell Programming and Scripting

help needed with shell script to append to the end of a specific line in a file on multiple servers

Hi Folks, I was given a task to append three IP's at the end of a specific (and unique) line within a file on multiple servers. I was not able to do that with the help of a script. All I could was: for i in server1 server2 server3 server4 do ssh $i done I know 'sed' could be used to... (5 Replies)
Discussion started by: momin
5 Replies

8. Shell Programming and Scripting

Shell script to identify the number of files and to append data

Hi I am having a question where I have to 1) Identify the number of files in a directory with a specific format and if the count is >1 we need to concatenate those two files into one file and remember that in the second file the header should not be copied. it should be form first file.... (4 Replies)
Discussion started by: pradkumar
4 Replies

9. Shell Programming and Scripting

How to append value at first line of CSV file using shell script?

I have an issue where I need to append a value at the last of the csv, I have created a shell script and it is appending the columns at the last but it is appending at all lines, and my requirement is specific to just append at the 1st line. Have a look and suggest, (7 Replies)
Discussion started by: anujrichhariya
7 Replies

10. UNIX for Advanced & Expert Users

Shell script to append a time for the existing error log file

Hi Guys, the requirement is like this, i am having a error log file in this format, 4594.493: parallel nursery GC 2594592K->2544691K (2969600K), 30.848 ms 4605.958: parallel nursery GC 2634887K->2584986K (2969600K), 38.900 ms 4619.079: parallel nursery GC 2822555K->2774812K... (12 Replies)
Discussion started by: gsprasanna
12 Replies
Login or Register to Ask a Question