10 More Discussions You Might Find Interesting
1. UNIX for Beginners Questions & Answers
I want to add the sequence length of File_1.fa and File _2.fa to form the form the fifth column in File_1_pos.txt and File_2_poa.txt respectively using awk and bash. Can anyone help me? Thanks
Get sequence length of each file
File_1.fa
File_2.fa
Add the sequence length to be the third... (6 Replies)
Discussion started by: Ibk
6 Replies
2. UNIX for Dummies Questions & Answers
Hi there, shameful Linux Newbie here :p
I was wondering if you could help with my problem...
I have plenty of files I'd like to concatenate. I know how to basically use cat command but that won't be enough from what I need : excluding the last xx bytes from files before assembling since there's... (4 Replies)
Discussion started by: grolido
4 Replies
3. Shell Programming and Scripting
I have 3 files
File1
C1 C2 c3
File 2
C1 c2 c3
File 3
C1 c2 c3
Now i want to have
File1 as C1 c2 c3 I
File2 as C1 c2 c3 O
File3 as c1 c2 c3 D
and these 3 files should be concatenated into a single file
how can it be done in unix script? (3 Replies)
Discussion started by: Codesearcher
3 Replies
4. Shell Programming and Scripting
Hi,
I have a unix file with the below structure -
CustId1 CustName1 CustPhn1 /u/home/xmldata/A000001
CustId2 CustName2 CustPhn2 /u/home/xmldata/A000002
CustId3 CustName3 CustPhn3 /u/home/xmldata/A000003
Then I have another unix directory /u/home/xmldata
This directory has... (3 Replies)
Discussion started by: Simanto
3 Replies
5. Shell Programming and Scripting
Hi
This is a simple one but I got a lost in translation when doing.
What I want to do, given both variables in the example below, to get one value at the time from both variables, for example:
1:a
2:b
etc...
I need to get this in bash scripting
code:
varas="1 2 3 4"
varbs="a b c d"... (4 Replies)
Discussion started by: ranmanh
4 Replies
6. Shell Programming and Scripting
I have the following script in a shell
# The start of a filename
file=$(ls -tr $EMT*.dat | tail -1) # Select the latest file echo $file
file_seq=$( < /u02/sct/banner/bandev2/xxxxxx/misc/EFTSQL.dat)
echo $file_seq
file2 = '$file_seq + 1'
echo $file2
It is reading a file EFTSQL.dat... (3 Replies)
Discussion started by: rechever
3 Replies
7. Shell Programming and Scripting
I want o add a variable in addition to a file which will be send with sendmail. I have problems to find the correct syntax for concatenating this variable called $MyVariable.
sendmail mai@domain.com </tmp/errormessage.txt $MyVariable]
Thanks for your help! (2 Replies)
Discussion started by: high5
2 Replies
8. Shell Programming and Scripting
Hi,
I have a table in Db2 with data say
id_1 phase1
id_1 phase2
id_1 phase3
id_2 phase1
id_2 phase2
I need to concatenate the values like
id_1 phase1,phase2,phase3
id_2 phase1,phase2
I tried recursive query but in vain as the length of string to be concatenated in quite long. ... (17 Replies)
Discussion started by: jsaravana
17 Replies
9. UNIX for Dummies Questions & Answers
Hi All,
I want to concatenate the array cell values and form a string.. Is it possible?
for ex.
I have an array
word_array contains d u m b and after concatenating the string shld be 'dumb'
thanks (2 Replies)
Discussion started by: mathur
2 Replies
10. Shell Programming and Scripting
hi
My requirement is i have a file with some records like this
file name ::xyz
a=1
b=100,200
,300,400
,500,600
c=700,800
d=900
i want to change my file
a=1
b=100,200,300,400
c=700,800
d=900
if record starts with " , " that line should fallows the previous line.please give... (6 Replies)
Discussion started by: srivsn
6 Replies
Fields(3pm) User Contributed Perl Documentation Fields(3pm)
NAME
Sort::Fields - Sort lines containing delimited fields
SYNOPSIS
use Sort::Fields;
@sorted = fieldsort [3, '2n'], @lines;
@sorted = fieldsort '+', [-1, -3, 0], @lines;
$sort_3_2n = make_fieldsort [3, '2n'], @lines;
@sorted = $sort_3_2n->(@lines);
DESCRIPTION
Sort::Fields provides a general purpose technique for efficiently sorting lists of lines that contain data separated into fields.
Sort::Fields automatically imports two subroutines, "fieldsort" and "make_fieldsort", and two variants, "stable_fieldsort" and "make_sta-
ble_fieldsort". "make_fieldsort" generates a sorting subroutine and returns a reference to it. "fieldsort" is a wrapper for the
"make_fieldsort" subroutine.
The first argument to make_fieldsort is a delimiter string, which is used as a regular expression argument for a "split" operator. The
delimiter string is optional. If it is not supplied, make_fieldsort splits each line using "/s+/".
The second argument is an array reference containing one or more field specifiers. The specifiers indicate what fields in the strings will
be used to sort the data. The specifier "1" indicates the first field, "2" indicates the second, and so on. A negative specifier like
"-2" means to sort on the second field in reverse (descending) order. To indicate a numeric rather than alphabetic comparison, append "n"
to the specifier. A specifier of "0" means the entire string ("-0" means the entire string, in reverse order).
The order in which the specifiers appear is the order in which they will be used to sort the data. The primary key is first, the secondary
key is second, and so on.
"fieldsort [1, 2], @data" is roughly equivalent to "make_fieldsort([1, 2])->(@data)". Avoid calling fieldsort repeatedly with the same
sort specifiers. If you need to use a particular sort more than once, it is more efficient to call "make_fieldsort" once and reuse the
subroutine it returns.
"stable_fieldsort" and "make_stable_fieldsort" are like their "unstable" counterparts, except that the items that compare the same are
maintained in their original order.
EXAMPLES
Some sample data (in array @data):
123 asd 1.22 asdd
32 ewq 2.32 asdd
43 rewq 2.12 ewet
51 erwt 34.2 ewet
23 erww 4.21 ewet
91 fdgs 3.43 ewet
123 refs 3.22 asdd
123 refs 4.32 asdd
# alpha sort on column 1
print fieldsort [1], @data;
123 asd 1.22 asdd
123 refs 3.22 asdd
123 refs 4.32 asdd
23 erww 4.21 ewet
32 ewq 2.32 asdd
43 rewq 2.12 ewet
51 erwt 34.2 ewet
91 fdgs 3.43 ewet
# numeric sort on column 1
print fieldsort ['1n'], @data;
23 erww 4.21 ewet
32 ewq 2.32 asdd
43 rewq 2.12 ewet
51 erwt 34.2 ewet
91 fdgs 3.43 ewet
123 asd 1.22 asdd
123 refs 3.22 asdd
123 refs 4.32 asdd
# reverse numeric sort on column 1
print fieldsort ['-1n'], @data;
123 asd 1.22 asdd
123 refs 3.22 asdd
123 refs 4.32 asdd
91 fdgs 3.43 ewet
51 erwt 34.2 ewet
43 rewq 2.12 ewet
32 ewq 2.32 asdd
23 erww 4.21 ewet
# alpha sort on column 2, then alpha on entire line
print fieldsort [2, 0], @data;
123 asd 1.22 asdd
51 erwt 34.2 ewet
23 erww 4.21 ewet
32 ewq 2.32 asdd
91 fdgs 3.43 ewet
123 refs 3.22 asdd
123 refs 4.32 asdd
43 rewq 2.12 ewet
# alpha sort on column 4, then numeric on column 1, then reverse
# numeric on column 3
print fieldsort [4, '1n', '-3n'], @data;
32 ewq 2.32 asdd
123 refs 4.32 asdd
123 refs 3.22 asdd
123 asd 1.22 asdd
23 erww 4.21 ewet
43 rewq 2.12 ewet
51 erwt 34.2 ewet
91 fdgs 3.43 ewet
# now, splitting on either literal period or whitespace
# sort numeric on column 4 (fractional part of decimals) then
# numeric on column 3 (whole part of decimals)
print fieldsort '(?:.|s+)', ['4n', '3n'], @data;
51 erwt 34.2 ewet
43 rewq 2.12 ewet
23 erww 4.21 ewet
123 asd 1.22 asdd
123 refs 3.22 asdd
32 ewq 2.32 asdd
123 refs 4.32 asdd
91 fdgs 3.43 ewet
# alpha sort on column 4, then numeric on the entire line
# NOTE: produces warnings under -w
print fieldsort [4, '0n'], @data;
32 ewq 2.32 asdd
123 asd 1.22 asdd
123 refs 3.22 asdd
123 refs 4.32 asdd
23 erww 4.21 ewet
43 rewq 2.12 ewet
51 erwt 34.2 ewet
91 fdgs 3.43 ewet
# stable alpha sort on column 4 (maintains original relative order
# among items that compare the same)
print stable_fieldsort [4], @data;
123 asd 1.22 asdd
32 ewq 2.32 asdd
123 refs 3.22 asdd
123 refs 4.32 asdd
43 rewq 2.12 ewet
51 erwt 34.2 ewet
23 erww 4.21 ewet
91 fdgs 3.43 ewet
BUGS
Some rudimentary tests now.
Perhaps something should be done to catch things like:
fieldsort '.', [1, 2], @lines;
'.' translates to "split /./" -- probably not what you want.
Passing blank lines and/or lines containing the wrong kind of data (alphas instead of numbers) can result in copious warning messages under
"-w".
If the regexp contains memory parentheses ("(...)" rather than "(?:...)"), split will function in "delimiter retention" mode, capturing the
contents of the parentheses as well as the stuff between the delimiters. I could imagine how this could be useful, but on the other hand I
could also imagine how it could be confusing if encountered unexpectedly. Caveat sortor.
Not really a bug, but if you are planning to sort a large text file, consider using sort(1). Unless, of course, your operating system
doesn't have sort(1).
AUTHOR
Joseph N. Hall, joseph@5sigma.com
SEE ALSO
perl(1).
perl v5.8.8 2008-03-25 Fields(3pm)