File Formatting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting File Formatting
# 1  
Old 07-15-2012
File Formatting

Hi,
I have requirement to format the file.My input file tab(\t) saperated.
File format is:-

Code:
93      WARNING Sat Mar 17 20:31:59 2012
        Sequential_File_0,0: Missing record delimiter "\r\n", saw EOF instead
94      WARNING Sat Mar 17 20:31:59 2012
        Sequential_File_0,0: Import warning at record 0.
121     WARNING Sun Jul 15 00:37:10 2012
        Sequential_File_0,0: Missing record delimiter "\r\n", saw EOF instead
122     WARNING Sun Jul 15 00:37:10 2012
        Sequential_File_0,0: Import warning at record 0.

I want to replace \n\t with \t so that my output file will look like this:-

Code:
93      WARNING Sat Mar 17 20:31:59 2012   Sequential_File_0,0: Missing record delimiter "\r\n", saw EOF instead
94      WARNING Sat Mar 17 20:31:59 2012   Sequential_File_0,0: Import warning at record 0.
121     WARNING Sun Jul 15 00:37:10 2012    Sequential_File_0,0: Missing record delimiter "\r\n", saw EOF instead
122     WARNING Sun Jul 15 00:37:10 2012    Sequential_File_0,0: Import warning at record 0.

I tried to replace it using tr command,but it seems its replacing all \n from file.
Code:
tr '\n\t' '\t' < file1.txt> file4.txt

Finally i have done this by:-
Code:
grep "WARNING" File.txt > File1.txt
grep -v "WARNING" File.txt>File2.txt
paste File1.txt File2.txt

But it seems this is not a correct way because i dont know which string i need to grep.
Can anyone help.
Thanks

Last edited by Scrutinizer; 07-15-2012 at 06:46 AM.. Reason: quote tags => code tags
# 2  
Old 07-15-2012
Code:
perl -ne 'if (!/^\t/){chomp;$rec=$_;}else{$rec.=$_;print $rec;}' tmp.dat

# 3  
Old 07-15-2012
Try (gawk, mawk, bwk):
Code:
awk 1 RS='\n\t' infile

POSIX awk:
Code:
awk 'END{print RS} {$0=(/^\t/?x:RS) $0}1' ORS= infile


--
If there is always a sequence of two lines:
Code:
awk '{ORS=(!/^\t/)?x:RS}1' infile

--
sed:
Code:
sed '/^[0-9]/{N;s/\n//;}' infile

or perhaps just
Code:
sed 'N;s/\n//' infile

This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 07-15-2012
Quote:
Originally Posted by Scrutinizer
Try (gawk, mawk, bwk):
Code:
awk 1 RS='\n\t' infile

POSIX awk:
Code:
awk 'END{print RS} {$0=(/^\t/?x:RS) $0}1' ORS= infile


--
If there is always a sequence of two lines:
Code:
awk '{ORS=(!/^\t/)?x:RS}1' infile

--
sed:
Code:
sed '/^[0-9]/{N;s/\n//;}' infile

or perhaps just
Code:
sed 'N;s/\n//' infile

Hi,

Thanks for your reply!

Quote:
sed 'N;s/\n//' infile
code is working for me.Smilie

Can you please explain how its formatting the file..

Thanks
# 5  
Old 07-15-2012
Hi, it just appends every second line (N) and then removes the newline character (s/\n//)..

So on line 1, line 2 gets appended, on line 3 line 4, etc...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Formatting data in a raw file by using another mapping file

Hi All, i have a requirement where i need to format the input RAW file ( which is CSV) by using another mapping file(also CSV file). basically i am getting feed file with dynamic headers by using mapping file (in that target field is mapped with source filed) i have to convert the raw file into... (6 Replies)
Discussion started by: ravi4informatic
6 Replies

2. Shell Programming and Scripting

Formatting file data to another file (control character related)

I have to write a program to read data from files and then format into another file. However, I face a strange problem related to control character that I can't understand and solve. The source file is compose of many lines with such format: T_NAME|P_NAME|P_CODE|DOCUMENT_PATH|REG_DATE ... (3 Replies)
Discussion started by: hk6279
3 Replies

3. Shell Programming and Scripting

Need help in formatting a file.

Hi, I have a file in the following format. cat input name: abcd_ef_1 234:343:343 343:234:343 name : abcdef_2 2343:2343:3434: w3243:wr43:2343 2343:2343:23343:3432 2343:34234:2343 name: 3432_343_3 23432:2343 2343:23432:32432 23432:23432:3432432 As you can see... (2 Replies)
Discussion started by: jpkumar10
2 Replies

4. Shell Programming and Scripting

File formatting

Hi, I have a file which contains data in this format # User@Host: abc @ Id: 0000000 # Query_time: 0.000070 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 SET timestamp=00000000; SELECT @@version, @@version_comment; # User@Host: abcd @ Id: 00000000 # Query_time: 0.000228 ... (6 Replies)
Discussion started by: arijitsaha
6 Replies

5. Shell Programming and Scripting

File formatting

I need to count the number of lines between two sets of pattern in a file and delete those lines from that file e.g From jyotiv@yahoo.com test test2 test3 test4 test5 test6 From Jyotiv@yahoo.com So count lines from test to test6 and delete it from the start of file till next From... (1 Reply)
Discussion started by: jyotiv
1 Replies

6. Shell Programming and Scripting

File Formatting

Hi, Need to delete all the records prior to pattern (INSERT/UPDATE/DELETE). If ' is available, then need to retain it. Input ====================== l_s := ' INSERT INTO TEST' l_P PD := ' UPDATE INTO TEST' l_D := ' DELETE INTO TEST' This is test Output ======================... (1 Reply)
Discussion started by: saurabhbaisakhi
1 Replies

7. Shell Programming and Scripting

File Formatting

Hi, Need to delete all the records prior to pattern (INSERT/UPDATE/DELETE). If ' is available, then need to retain it. Input ====================== l_s := ' INSERT INTO TEST' l_P PD := ' UPDATE INTO TEST' l_D := ' DELETE INTO TEST' This is test Input ======================... (1 Reply)
Discussion started by: saurabhbaisakhi
1 Replies

8. UNIX for Dummies Questions & Answers

Formatting a file.

I want to format a file to limit record length = 100, in each line. Any idea how i can do this? (1 Reply)
Discussion started by: abhilasha
1 Replies

9. Shell Programming and Scripting

Help with formatting of file.

I have a file with following file format - DMCRH|||83000171|||14022008||0430|||8956612.23|J|||3571235|1378452|23468|6894|9234| DMCRH|||83000215|||15092007||0480|||121.33|J|||LineID003|RefNumSP003|RefNumMem003|0004|0003| What i need done is - 1. Cut the firt four digits of the date (eg 1402... (3 Replies)
Discussion started by: divz
3 Replies

10. Shell Programming and Scripting

Formatting a file

Hi All, I have been trying to format a file using sed. I can't seem to get the syntax right. I want to append the next line delemited by a comma or a comma and double quotes. Here is an example of the file I'm tring to format: Before formatting: 00324 03A0312 BRI-u24 0000324 01 H-12... (4 Replies)
Discussion started by: cstovall
4 Replies
Login or Register to Ask a Question