Sort without Header and Trailer


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sort without Header and Trailer
# 1  
Old 12-10-2015
Sort without Header and Trailer

Hi ,
My UNIX system is SUN Solaris.
I am trying to do a simple thing as described below.
I have a PIPE delimited file that has header and trailer. So the file is something like below:

Test1.txt looks like something below:
HTML Code:
field_data1|field_data2|and some more data --Header
  Field1|field2|....and so on -Main data
  T|some info --Trailer
I want to perform the things below in this file:

  1. Remove the trailer from Test1.txt
  2. Save the header from Test1.txt
  3. Sort the records in Test1.txt excluding header (and run some business operation already in place on Test1.txt) that will create a subset pipe delimited file say Test2.txt
  4. Sort Text2.txt by field 2 and 3
  5. Add the header from step2(above) in Test2.txt


So the output should be Test2.txt -sorted by field 2 and 3 and add the header from step2.



I would appreciate any advice and help.


Thanks
# 2  
Old 12-10-2015
How about
Code:
{ head -1 ; head -n-1 | sort -t"|" -k2,3; } < Test1.txt

If happy, redirect result to a file.
# 3  
Old 12-10-2015
With sed instead of GNU head
Code:
{
read header; printf "%s\n" "$header"
sed '$d' | sort -t\| -k2,3
} < Test1.txt > Test2.txt

This User Gave Thanks to MadeInGermany For This Post:
# 4  
Old 12-10-2015
Code:
{ head -1 ; head -n-1 | sort -t"|" -k2,3; } < Test1.txt

Thanks for the reply. But the code is not working. Getting the error below:

head: Invalid "-n -1" option
usage: head [-n #] [-#] [filename...]

Thanks

---------- Post updated at 03:52 PM ---------- Previous update was at 03:50 PM ----------

Code:
{
read header; printf "%s\n" "$header"
sed '$d' | sort -t\| -k2,3
} < Test1.txt > Test2.txt

Thanks a bunch. The code above working fine for me.

I wanted to check if there is a way to output without header as well.

Thanks again.
# 5  
Old 12-10-2015
Quote:
Originally Posted by Saanvi1
[CODE]{ head -1 ; head -n-1 | sort -t"|" -k2,3; } [..]

I wanted to check if there is a way to output without header as well.
Try:
Code:
sed '1d;$d' Test1.txt | sort -t\| -k2,3 > Test2.txt

This User Gave Thanks to Scrutinizer For This Post:
# 6  
Old 12-10-2015
Quote:
Originally Posted by Saanvi1
Code:
{ head -1 ; head -n-1 | sort -t"|" -k2,3; } < Test1.txt

[...]
I wanted to check if there is a way to output without header as well.

Thanks again.
Code:
tail -n +2 Test1.txt | sort -t\| -k2,3

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Header and trailer Check in UNIX

I am planning to automate multiple files through Unix script. Could you please guide for making the automation for multiple files ? Eg. I have to check header and footer for all files in the particular path and the header pattern should match with the filename. Filename- Filename.txt... (2 Replies)
Discussion started by: karthick2020333
2 Replies

2. UNIX for Advanced & Expert Users

Removing Header and Trailer record of a EBCDIC file

I have a EBCDIC multi layout file which has a header record which is 21 bytes, The Detail records are 2427 bytes long and the trailer record is 9 bytes long. Is there a command to remove the header as well as trailer record and read only the detail records while at the same time not altering... (1 Reply)
Discussion started by: abhilashnair
1 Replies

3. Shell Programming and Scripting

Split and add header and trailer from input file

I need to split the file based on pattern from position 34-37 while retaining the header and trailer records in each individual split file Also is it possible to output the TOM and PAT records in the same output file ? I need the output file names same as xyz_pattern_Datetimestamp.txt ... (23 Replies)
Discussion started by: techedipro
23 Replies

4. Shell Programming and Scripting

Verify the header and trailer in file

please see my requirement, I hope I am clear. (9 Replies)
Discussion started by: mirwasim
9 Replies

5. Shell Programming and Scripting

Script to validate file header and trailer

Hi, I need a script that validates a file header/detail/trailer. File layout is: Header - Rec_Type|File_name|File_Date Detail - Rec_Type|field1|field2|field3... Trailder - Rec_Type|File_name|File_Date|Record_count Sample Data: HDR|customer_data.dat|20120709... (7 Replies)
Discussion started by: ash_sh
7 Replies

6. UNIX for Dummies Questions & Answers

oneliner for adding header and trailer

for example, i have a file with below content: 123413 866688 816866 818818 i want the output as: This is header 123413 866688 816866 818818 This is trailer i am able to achieve it using a bash script. (2 Replies)
Discussion started by: pandeesh
2 Replies

7. UNIX for Dummies Questions & Answers

Adding header and trailer into a file

Hi, I want to add the below Header to all the files in sequence File1,File2,File3...etc "ABC,<number of chracter in the file>" e,g - If File1 is as below pqrstuvdt abcdefgh then I want to add the above header into it ,So that File1 becomes as below ABC,17 pqrstuvdt abcdefgh ... (9 Replies)
Discussion started by: spari2
9 Replies

8. Shell Programming and Scripting

Header as is.. trailer count

i have .DAT file FILE1.DAT 1200910270040625 2123456789 J123456 ABC 2123456789 K123456 ABC 2222222222 L123456 DEF 2333333333 M12345 GHI 30000004 My outfile FILE2.TXT should have like this, I need the header value as ie (1200910270040625 ) body rows remove the duplicate rows and the... (2 Replies)
Discussion started by: kshuser
2 Replies

9. Shell Programming and Scripting

Removing Header & Trailer from a file

Hi All, I am karthik. I am new to this forum. I have one requirement. I have a file with header and footer. Header may be like HDR0001 or FILE20090110 (Assume it is unknown so far, but i am sure there is a header in the file) likewise file has the trailer too. I just... (7 Replies)
Discussion started by: karthi_gana
7 Replies

10. UNIX for Dummies Questions & Answers

Append Header and Trailer

Hi everyone, I am new to Unix programming. My inquries is:- a) How to add a Header and Trailer in the set of data b) Include a number count of the data in the trailer The set of data only contained the information of 'Customer's Name' and 'Account Number'. I would like to add the Header... (2 Replies)
Discussion started by: balzzz
2 Replies
Login or Register to Ask a Question