02-04-2008
Quote:
Originally Posted by
prashk15
Hello experts,
This might prove to be a stupid question to some of you, but I have tried to tackle it in different ways. Being new to shell scripting, I am requesting your help in coming up with an elegant solution. I am using Korn shell.
We have a directory with file names with the pattern:
abc_123
abc_456
xyz_789
I have to compare them against a prefix file to check whether the names behind the underscore are valid and consolidate them in different directories.
How do I do that?
1. Put them in different files and use diff/comm to compare. This requires multiple passes - since the consolidation is more than what I can highlight here.
2. Do something like:
FileList=$(ls -r $SOURCE_DIR) # list & sort
PrefixList=$(cat $PREFIX_FILE | sort -r)
for sFile in $sFileList
do
iDelimit=$(expr index $sFile _)
(( iDelimit -= 1 ))
sFileCmp=$(expr substr $sFile 1 $iDelimit)
for sPrefix in $sPrefixList
do
echo $sFileCmp compared with $sPrefix
if [ $sFileCmp -gt sPrefix ] # will not work, symbolic
then
continue
elif [ $sFileCmp -eq sPrefix ]
then
blPrefixValid=1
else
blPrefixValid=0
break
fi
done
3. Get valid prefixes and run through the directory each time to process files
Any help appreciated.
Thanks.
What is the criteria to separate the files?
Thanks
Nagarajan G
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hello all-
First post, so just to forewarn you: I know enough about Perl and the Terminal to get myself into trouble, not quite enough to always get out.
I'd like to know if it is possible to, from the command prompt, use a wild-card to declare the names of files for input and then use the... (1 Reply)
Discussion started by: tcquad
1 Replies
2. Shell Programming and Scripting
Hi,
I have a data file xyz.dat similar to the one given below,
2345|98|809||x|969|0
2345|98|809||y|0|537
2345|97|809||x|544|0
2345|97|809||y|0|651
9685|98|809||x|321|0
9685|98|809||y|0|357
9685|98|709||x|687|0
9685|98|709||y|0|234
2315|98|809||x|564|0
2315|98|809||y|0|537... (2 Replies)
Discussion started by: nithins007
2 Replies
3. Shell Programming and Scripting
Hi
I have some files in directory and the names of files are like
jnhld_15233_2010-11-23
jnhld_15233_2007-10-01
jnhld_15233_2001-05-04
jnhld_15233_2011-11-11
jnhld_15233_2005-06-07
jnhld_15233_2000-04-01
..etc
How can i sort these files based on the date in the file name so that ... (4 Replies)
Discussion started by: morbid_angel
4 Replies
4. UNIX for Dummies Questions & Answers
Hello,
:wall:
I have a 12 column csv file. I wish to delete the entire line if column 7 = hello and column 12 = goodbye. I have tried everything that I can find in all of my ref books.
I know this does not work
/^*,*,*,*,*,*,"hello",*,*,*,*,"goodbye"/d
Any ideas?
Thanks
Please... (2 Replies)
Discussion started by: Chris Eagleson
2 Replies
5. Shell Programming and Scripting
Hi,
Variable=MKT1,MKT2,MKT3 and so on
i am trying to seperate MKT1,MKT2,MKT3 and store each in a variable.
the values in variable1 may vary. I am using bash (8 Replies)
Discussion started by: arghadeep adity
8 Replies
6. Shell Programming and Scripting
Output from zipdiff GNU EAR comparison tool produces output in html divided into three sections "Added, Removed, Changed". I want the output to be sorted by jar or war file.
<html>
<body>
<table>
<tr>
<td class="diffs" colspan="2">Added </td>
</tr>
<tr><td>
<ul>... (5 Replies)
Discussion started by: kchinnam
5 Replies
7. UNIX for Dummies Questions & Answers
Hi everyone,
I have a problem and I would be gratful if you can help.
I have set of folders with files in them. e.g. data1, data2, data3
and I have a json file with info ... looking like this
I want to rename my files to replace the data with their gender to some processing and back to... (8 Replies)
Discussion started by: A-V
8 Replies
8. UNIX for Beginners Questions & Answers
Hi,
I have the following reports that get generated every 1 hour and this is my requirement:
1. 5 reports get generated every hour with the names "Report.Dddmmyy.Thhmiss.CTLR"
"Report.Dddmmyy.Thhmiss.ACCD"
"Report.Dddmmyy.Thhmiss.BCCD"
"Report.Dddmmyy.Thhmiss.CCCD"... (1 Reply)
Discussion started by: Jesshelle David
1 Replies
9. Programming
Hi,
I am working in Visual studio 2008 in which i have written the code in c++,qml,qt.Its a simulator application.
I would like to create a simulator with certain changes. In order to do that i have modified the code with few changes based on the preprocessor condition.
#define... (4 Replies)
Discussion started by: SA_Palani
4 Replies
10. UNIX for Beginners Questions & Answers
Hi all,
I have a text file similar to this:
Text
More text
Etc
Stuff
That
Is
Needed
Etc
Etc
This contains over 70 entries and each entry has several lines of text below the name in square brackets. (5 Replies)
Discussion started by: Scally
5 Replies
SORT(1) User Commands SORT(1)
NAME
sort - sort lines of text files
SYNOPSIS
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
DESCRIPTION
Write sorted concatenation of all FILE(s) to standard output.
Mandatory arguments to long options are mandatory for short options too. Ordering options:
-b, --ignore-leading-blanks
ignore leading blanks
-d, --dictionary-order
consider only blanks and alphanumeric characters
-f, --ignore-case
fold lower case to upper case characters
-g, --general-numeric-sort
compare according to general numerical value
-i, --ignore-nonprinting
consider only printable characters
-M, --month-sort
compare (unknown) < `JAN' < ... < `DEC'
-n, --numeric-sort
compare according to string numerical value
-R, --random-sort
sort by random hash of keys
--random-source=FILE
get random bytes from FILE (default /dev/urandom)
-r, --reverse
reverse the result of comparisons
--sort=WORD
sort according to WORD: general-numeric -g, month -M, numeric -n, random -R, version -V
-V, --version-sort
sort by numeric version
Other options:
--batch-size=NMERGE
merge at most NMERGE inputs at once; for more use temp files
-c, --check, --check=diagnose-first
check for sorted input; do not sort
-C, --check=quiet, --check=silent
like -c, but do not report first bad line
--compress-program=PROG
compress temporaries with PROG; decompress them with PROG -d
--files0-from=F
read input from the files specified by NUL-terminated names in file F; If F is - then read names from standard input
-k, --key=POS1[,POS2]
start a key at POS1 (origin 1), end it at POS2 (default end of line)
-m, --merge
merge already sorted files; do not sort
-o, --output=FILE
write result to FILE instead of standard output
-s, --stable
stabilize sort by disabling last-resort comparison
-S, --buffer-size=SIZE
use SIZE for main memory buffer
-t, --field-separator=SEP
use SEP instead of non-blank to blank transition
-T, --temporary-directory=DIR
use DIR for temporaries, not $TMPDIR or /tmp; multiple options specify multiple directories
-u, --unique
with -c, check for strict ordering; without -c, output only the first of an equal run
-z, --zero-terminated
end lines with 0 byte, not newline
--help display this help and exit
--version
output version information and exit
POS is F[.C][OPTS], where F is the field number and C the character position in the field; both are origin 1. If neither -t nor -b is in
effect, characters in a field are counted from the beginning of the preceding whitespace. OPTS is one or more single-letter ordering
options, which override global ordering options for that key. If no key is given, use the entire line as the key.
SIZE may be followed by the following multiplicative suffixes: % 1% of memory, b 1, K 1024 (default), and so on for M, G, T, P, E, Z, Y.
With no FILE, or when FILE is -, read standard input.
*** WARNING *** The locale specified by the environment affects sort order. Set LC_ALL=C to get the traditional sort order that uses
native byte values.
AUTHOR
Written by Mike Haertel and Paul Eggert.
REPORTING BUGS
Report sort bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
COPYRIGHT
Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
The full documentation for sort is maintained as a Texinfo manual. If the info and sort programs are properly installed at your site, the
command
info coreutils 'sort invocation'
should give you access to the complete manual.
GNU coreutils 7.1 July 2010 SORT(1)