10-11-2011
Writing a loop to process multiple input files by a shell script
I have multiple input files that I want to manipulate using a shell script. The files are called 250.1 through 250.1000 but I only want the script to manipulate 250.300 through 250.1000. Before I was using the following script to manipulate the text files:
for i in 250.*; do
[ "$i" = 'X.txt' ] || awk 'NR==FNR{A[NR]=$6;next}{$6=A[FNR]}1' "$i" 'X.txt' > "X.${i%.txt}"
done
But the script above manipulates all scripts 1 through 1000 whereas I want it to specifically manipulate 300 through 1000. How can I change the script above to do that?
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I want to process all input files available into folder (C:\ShellPrg\InputFile\) Input files are abc.CSV , XYZ.zip (zip of CSV file), PQR.gz (zip of CSV file).
I want to check the extension of file, If its .zip/.gz then need to unzip the file as .CSV
I want to parse line by line of... (2 Replies)
Discussion started by: Poonamol
2 Replies
2. Shell Programming and Scripting
Hi,
I would like to write a for loop that does the following:
I have a file called X.txt and other files called 1.txt,2.txt, .....,1000.txt.
I want to substitute the 6th column of the file X.txt with 1.txt and store the output as X.1. Then I want to do the same with X.txt and 2.txt and store... (0 Replies)
Discussion started by: evelibertine
0 Replies
3. UNIX for Dummies Questions & Answers
I would like to write a for loop that does the following:
I have a file called X.txt and other files called 1.txt,2.txt, .....,1000.txt.
I want to substitute the 6th column of the file X.txt with 1.txt and store the output as X.1. Then I want to do the same with X.txt and 2.txt and store the... (1 Reply)
Discussion started by: evelibertine
1 Replies
4. UNIX for Dummies Questions & Answers
I have a script where the the 9th line looks like this:
$filename=sprintf("250.1chr%d.ped", $N);
I want to modify this script 1000 times, changing 250.1chr%d.ped to 250.2chr%d.ped, 250.3chr%.ped.......and so on all the way to 250.1000chr%d.ped and store each output in files called
... (4 Replies)
Discussion started by: evelibertine
4 Replies
5. UNIX for Dummies Questions & Answers
I have 100 data files labelled 250.1.txt through 250.100.txt. The second column of the data files partially match (there is about %90 overlap). Each data file has 4 columns.
I want the merge all these text files by the matching values in the second column. In the output, the first column should... (1 Reply)
Discussion started by: evelibertine
1 Replies
6. UNIX for Dummies Questions & Answers
Hello,
So I have approximately 300 files of raw data (.txt) files that I am using to perform statistical analysis. I have been able to construct a Fortran program that is able to perform my statistical analysis on a file by file basis.
However, I now want to be able to loop program through... (19 Replies)
Discussion started by: Jimmyd24
19 Replies
7. UNIX for Dummies Questions & Answers
Hi,
I have 1000 text files in a folder that are labeled data1.txt all the way to data1000.txt. I want to write a small script that manipulates the text files in this way:
(1) cut the 2nd and 9th columns of the text files
(2) sort by the numerical value in the 9th column
(3) then save the rows... (3 Replies)
Discussion started by: evelibertine
3 Replies
8. Shell Programming and Scripting
Hi all ,
i want to pass multiple files as input to a for loop
for i in file1 file2 file3
do
some awk action < $i >> $i.out
done
but im getting error in that for loop is the way i use to pass files to awk using for correct and
2.we can directly pass multiple files to awk as... (7 Replies)
Discussion started by: zozoo
7 Replies
9. Shell Programming and Scripting
Hi, I have written a script that allows me to repetitively play a music file $N times, which is specified through user input. However, if I want to exit the script before it has finished looping $N times, if I use CTRL+c, I have to CTRL+c however many times are left in order to complete the loop.... (9 Replies)
Discussion started by: hilltop_yodeler
9 Replies
10. Open Source
Hello!
Need help to write a Linux script that can be run from windows using command/Cygwin/any other way. I am new to scripting, actually i am trying to automate server health check like free disk space, memory along with few services status, if any services is not running then start services ,... (7 Replies)
Discussion started by: Sayed Ibrahim
7 Replies
LEARN ABOUT DEBIAN
avisplit
avisplit(1) General Commands Manual avisplit(1)
NAME
avisplit - split AVI-files into chunks of a maximum size
SYNOPSIS
avisplit [ -i file -o base [ -s size ] [ -H num ] [ -t s1-s2[,s3-s4,..] -c -m -b num -f commentfile ] ] [ -v ]
COPYRIGHT
avisplit is Copyright (C) by Thomas Oestreich.
DESCRIPTION
avisplit splits a single AVI-file into chunks of size size.
Each of the created chunks will be an independent file, i.e. it can be played without needing any other of the chunk.
OPTIONS
-i file
Specify the filename of the file to split into chunks.
-o base
Specify the base of the output filename(s) avisplit will then split to base-%04d.avi
-s size
Use this option to specify the maximum size (in units of MB) of the chunks avisplit should create. 0 means dechunk, create as many
files as possible.
-H num Create only the first num chunks then exit.
-t s1-s2[,s3-s4,..]
Split the input file based on time/framecode (hh:mm:ss.ms)
-c Together with -t. Merge all segments into one AVI-File again instead generating seperate files.
-m Together with -t. Force split at upper bondary instead of lower border.
-b num Specify if avisplit should write an VBR mp3 header into the AVI file. Default is 1 because it does not hurt. num is either 1 or 0.
-f commentfile
Read AVI tombstone data for header comments from commentfile. See /docs/avi_comments.txt for a sample.
-v Print only version information and exit.
EXAMPLES
The command
avisplit -s 700 -i my_file.avi
will split the file my_file.avi into chunks which's maximum size will not exceed 700 MB, i.e. they will fit onto a CD, each. The created
chunks will be named my_file.avi-0000, my_file.avi-0001, etc.
avisplit -i my_file.avi -c -o out.avi -t 00:10:00-00:11:00,00:13:00-00:14:00
will grab Minutes 10 to 11 and 13 to 14 from my_file.avi and merge it into out.avi
BAD SYNCH
When you split a file with avisplit and the A/V sync for the first file is OK but the sync on all successive files is bad then have a look
at the output of tcprobe(1) (shortend).
| V: 25.000 fps, codec=dvsd, frames=250, width=720, height=576
| A: 48000 Hz, format=0x01, bits=16, channels=2, bitrate=1536 kbps,
| 10 chunks, 1920000 bytes
You'll see the AVI file has only 10 Audio chunks but 250 video chunks. That means one audio chunk spans several video frames. avisplit can
not cut a chunk in half, it only handles complete chunks. If you do, say, avisplit -s 20, it is possible that the first file will have 6
audio chunks and the second one only 4 meaning there is too much audio in the first AVI file.
The solution is to remux the AVI file with
transcode -i in.avi -P1 -N 0x1 -y raw -o out.avi
(of course -N 0x1 is not correct for all AVI files). Now look at tcprobe again
| V: 25.000 fps, codec=dvsd, frames=250, width=720, height=576
| A: 48000 Hz, format=0x01, bits=16, channels=2, bitrate=1536 kbps,
| 250 chunks, 1920000 bytes
The data in this file is exactly the same (its bit-identical) as it was in in.avi; the AVI file was just written in a different way, we do
now have 250 audio chunks which makes splitting much easier and more accurate for avisplit.
AUTHORS
avisplit was written by Thomas Oestreich
<ostreich@theorie.physik.uni-goettingen.de> with contributions from many others. See AUTHORS for details.
SEE ALSO
aviindex(1), avifix(1), avimerge(1), tccat(1), tcdecode(1), tcdemux(1), tcextract(1), tcprobe(1), tcscan(1), transcode(1)
avisplit(1) 25th June 2003 avisplit(1)