Visit Our UNIX and Linux User Community


split a file at a specified string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting split a file at a specified string
# 1  
Old 07-04-2002
Question split a file at a specified string

to find log files modification, i want to select all the lines of a file behind a string (found by grep ?).
Smilie
# 2  
Old 07-04-2002
To select all lines from beginning of the file up to but not including a specific line:
Code:
awk '{if (match($0,"string")) exit; print}' myfile

If you want all lines up to and including the specific line:
Code:
awk '{print; if (match($0,"string")) exit}' myfile

Identification of the termination line is being done by looking for "string" in the entire line, but this can be whatever you need, such as checking the nth word on the line etc.

If you want to select groups of lines beginning with a line that contains "start" and through a line that contains "end":

Code:
awk '/start/,/end/' myfile

That would also get a partial group of lines, starting with a line that contains "start" and terminating with end-of-file.
Jimbo
# 3  
Old 07-04-2002
In the last sentence,
awk '/start/,/end/' myfile select from /start/ to /end/, what can i write for :

from /start/ to the end of file ?
Thanks
# 4  
Old 07-04-2002
That is a little different. There are different approaches. One way is to set a flag on that will then test true for remainder of file processing:
Code:
awk '/string/ {p=1}; p==1 {print}' myfile

Or if you want to select lines starting with the line AFTER the found line:
Code:
awk '/string/ {p=1;next}; p==1 {print}' myfile

Jimbo
# 5  
Old 07-04-2002
Or, using the /from/,/to/ construct, you could use a to-string that you know would never be in the file, such as:
Code:
awk '/string/,/ue4R6TbWQ2Jk/' myfile

That would select lines beginning with a line containing "string" through a line containing ue4R6TbWQ2Jk or end-of-file, whichever is encountered first.
Jimbo
# 6  
Old 07-04-2002
Thank's a lot to help me

can i have a pipe in my search string ?
# 7  
Old 07-04-2002
Yes. The awk program is in single quotes, thus some protection from the shell. I just tested a search string that contains an embedded pipe character, and it worked without having to precede with backslash or anything.
Jimbo

Previous Thread | Next Thread
Test Your Knowledge in Computers #332
Difficulty: Easy
It is possible to format a write-protected DVD-R hard disk.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to split a file with delimited string?

I have a unix file text.txt with below content aaaaa bbbbbbb cccccccccc As of 2013 ddddddddd eeeeeeeeee eeeeeeeee fffffffff As of 2014 gggggggggggg hhhhhhhhh iiiiiiiiiiiiiiii As of 2016 Now I've to split this file with each file ending with line 'As of' . Please suggest how can I do... (6 Replies)
Discussion started by: Steven77
6 Replies

2. Shell Programming and Scripting

How to Split File based on String?

hi , The scenario is like this, i have a large text files (max 5MB , about 5000 file per day ), Inside almost each line of this file there is a tag 3100.2.22.1 (represent Call_Type) , i need to generate many filess , each one with distinct (3100.2.22.1 Call_Type ) , and one more file to... (3 Replies)
Discussion started by: OTNA
3 Replies

3. Shell Programming and Scripting

A command to split a file into two based on a string

Hello What command can i use to split a tab delimited txt file into two files base on the occurrence of a string my file name is EDIT.txt The content of file is below XX 1234 PROCEDURES XY 1634 PROCEDURES XM 1245 CODES XZ 1256 CODES It has more than a million record If there is... (16 Replies)
Discussion started by: madrazzii
16 Replies

4. Shell Programming and Scripting

Split a fixed length file bases on last occurence of string

Hi, I need to split a file based on last occurece of a string. PFB the explanation I have a file in following format aaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbb ccccccccccccccccccccccccccc ddddddddddddddddddddddddddd 3186rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr... (4 Replies)
Discussion started by: Neelkanth
4 Replies

5. Shell Programming and Scripting

Regex to split a string and write the output in another file.

hi, i am trying to write a script to generate ouput in the following format: ##### buildappi abcd_sh nodebug.##### ##### buildappi ijk_sh nodebug.##### The given string is as follows: xtopSharedDLLs = "abcd_sh def_sh ijk_sh " \ + "jkl_sh any_sh... (15 Replies)
Discussion started by: Rashid Khan
15 Replies

6. Shell Programming and Scripting

Need HELP with AWK split. Need to check for "special characters" in string before splitting the file

Hi Experts. I'm stuck with the below AWK code where i'm trying to move the records containing any special characters in the last field to a bad file. awk -F, '{if ($NF ~ /^|^/) print >"goodfile";else print >"badfile"}' filename sample data 1,abc,def,1234,A * 2,bed,dec,342,* A ... (6 Replies)
Discussion started by: shell_boy23
6 Replies

7. Shell Programming and Scripting

Split string with blancs to pick up information in a file ?

Hello, I am quite new in shell, and would like to pick up information in a file. The file structure is like this faor all data: T 50 2 2.5 is this a candy number color price I know how to pick up a line. I do this: head -linenumber candyfile.doc | tail -1 But I would... (6 Replies)
Discussion started by: shadok
6 Replies

8. Shell Programming and Scripting

awk: split a file using a string problems

Hi, if i use this code awk '/String/{n++}{print > f n}' f=file input I get "input" splited this way file1 String 1515 1354 2356 file 2 String 4531 0345 5345 (3 Replies)
Discussion started by: aloctavodia
3 Replies

9. Shell Programming and Scripting

Split a binary file into 2 basing on 2 delemiter string

Hi all, I have a binary file (orig.dat) and two special delimiter strings 'AAA' and 'BBB'. My binary file's content is as follow: <Data1.1>AAA<Data1.2>BBB <Data2.1>AAA<Data2.2>BBB ... <DataN.1>AAA<DataN.2>BBB DataX.Y might have any length, and contains any kind of special/printable... (1 Reply)
Discussion started by: Averell
1 Replies

10. UNIX for Dummies Questions & Answers

Split a file with no pattern -- Split, Csplit, Awk

I have gone through all the threads in the forum and tested out different things. I am trying to split a 3GB file into multiple files. Some files are even larger than this. For example: split -l 3000000 filename.txt This is very slow and it splits the file with 3 million records in each... (10 Replies)
Discussion started by: madhunk
10 Replies

Featured Tech Videos