Need separate vi files in shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need separate vi files in shell
# 15  
Old 11-14-2015
Cjox,Yoda,Rudic,Looney

Thanks to each of you. I have made some mistake while executing.
above provided script is working as expected. Sorry for the confusion.
# 16  
Old 11-15-2015
Hi Yoda,
what is the purpose of close(ofile) ?, Even after removing , it giving same result.
# 17  
Old 11-15-2015
You'll see the difference when the maximum number of open files is exceeded.
This User Gave Thanks to RudiC For This Post:
# 18  
Old 11-20-2015
Hi Yoda,

Could you explain the logic how the awk is working.

Thx!
# 19  
Old 11-20-2015
Code:
# Set <tab> and <space> as field separators
awk -F'[\t ]' '
	# If NF (number of fields) in current input record == 1, set ofile variable = $1 (output filename)
	# next forces awk to immediately stop processing current record and go on to the next record
        NF == 1 {
                ofile = $1
                next
        }
	# If NF (number of fields) in current input record = 2, write record to ofile (output filename)
        NF == 2  {
                print $2 > ofile
        }
' input.txt

This User Gave Thanks to Yoda For This Post:
# 20  
Old 11-20-2015
Here is a slightly different approach that closes output files when a new output file is specified in the input and uses the default field separator (any combination of contiguous <space> and <tab> characters separate fields, leading <space>s and <tab>s are ignored when counting fields). (Closing files is important if lots of files are to be created from an input file.)
Code:
awk '	# Name utility used to run this script and open the script.
NF == 0 {
	# If this is a blank line (i.e., # of fields is zero), skip to next line
	# of input.
	next
}
!/^[ \t]/ {
	# if the first character on the line is not a <space> or a <tab>...
	# If the current output filename is not the empty string, close the
	# current output file.
	if(out_file)	close(out_file)
	# Set the name of the output file to use on the followng lines.
	out_file = $1
	# Skip to the next llne of input.
	next
}
{	# Print the current data (assumed to be a single word) to the current
	# output file, skipping leading <space> and <tab> characters...
	print $1 > out_file
	# Note that the above replaces existing input files with new contents
	# every time a new filename is encountered.  If you want to append
	# (instead of replace), change ">" to ">>".
}' input.txt	# Close the script and name the input file(s) to be processed.

If someone wants to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk or nawk.
This User Gave Thanks to Don Cragun 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

Tar with variable date in separate shell

Hi, I am trying to Zip a folder inside a shell script like below. It successfully taring but it only returns Null inside the variables. Searched a lot but no clue to finding the root cause. testno=1; date=20171128; DIR=/root/ sh -c 'cd $DIR; tar cvf "AWS.${testno.${date}.tar" "./AWS"' ... (5 Replies)
Discussion started by: pradyumnajpn10
5 Replies

2. Shell Programming and Scripting

Output in separate files

Hi all, i have the bash script for remote conection, for hosts in $(cat /list); do ssh user1@$hosts "hostname"; done execute hostname command by all hosts and show standar ouput, how i can send to file by each host in lists, so e.g. $cat list 10.0.0.1 10.0.0.2... (1 Reply)
Discussion started by: aav1307
1 Replies

3. UNIX for Dummies Questions & Answers

Intersect of two columns in two separate files

Hi, I have a file like this: abc def ghi jkl mno My second file is like this (tab delimited): adsad sdfsdf dfdf wads abc dfdsf sdsf jkl sfsdf dsfds sdfd reor zxczd dsf sff Now, I want the code to report the lines (from file2) which have common strings in column 2 with the first... (4 Replies)
Discussion started by: a_bahreini
4 Replies

4. Web Development

Two separate domains - and files

Hi, I've been asked to 'troubleshoot' a webserver where two different TLDs are being served. Or to be more accurate, 'domain.com' and 'domain.fr'. So we have /var/www/domain.com /var/www/domain.fr And then for some reason, the httpd.conf file points to two different configuration files.... (1 Reply)
Discussion started by: davidm123SED
1 Replies

5. Shell Programming and Scripting

Using bash to separate files files based on parts of a filename

Hey guys, Sorry for the basic question but I have a lot of files that I want to separate into groups based on filenames which I can then cat together. Eg I have: (a_b_c.txt) WB34_2_SLA8.txt WB34_1_SLA8.txt WB34_1_DB10.txt WB34_2_DB10.txt WB34_1_SLA8.txt WB34_2_SLA8.txt 77_1_SLA8.txt... (1 Reply)
Discussion started by: Breentax
1 Replies

6. Shell Programming and Scripting

Comparing columns in two separate files

Hey all, I have a file structure that looks something like this: file1 306708278 88954535 234167885 file2 2012-03-27T12:32:56+00:00 137 Orchotorena 184616310003601409 306708278 es 40.4777947 Majadahonda -3.6416896333333333 0 false atlante83 "<a href=""http://tapbots.com/tweetbot""... (8 Replies)
Discussion started by: dgaff
8 Replies

7. Shell Programming and Scripting

Need help with shell, trying to append or separate values in a string

Ok. I for the life of me cant figure out how to do this. I need Help. So here is what I'm trying to do. I have a block of text. They are FIPS codes for counties. Below is the block. There are probably a few ways to do this. The first line starting with ARC021....... this line is a list of... (2 Replies)
Discussion started by: chagan02
2 Replies

8. Shell Programming and Scripting

Separating Pattern Into Separate Files

I am trying to separate a specific pattern match into separate files. Sometimes there is only one pattern match, but other times there could be multiple (up to 6 or 8). Pattern is as follows - its starts with NYZ or VTZ and ends with $$. Again looking to get those blocks of data from one big... (17 Replies)
Discussion started by: Double-E
17 Replies

9. Shell Programming and Scripting

Separate String Shell Script

Hi guys, I am a beginner in shell script.. How can I separate a string coming from a parameter in spaces ? Ex: input: test.sh abcd output: a b c d Thanks Dusse (15 Replies)
Discussion started by: dusse
15 Replies

10. Shell Programming and Scripting

Break a file into separate files

Hello I am facing a scenario where I have a file with XML content and I am running shell script over it. But the problem is the XML is getting updated with new services. In the below scenario, my script takes values from the xml file from one service name say ABCD. Since there are multiple, it is... (8 Replies)
Discussion started by: chiru_h
8 Replies
Login or Register to Ask a Question