Thanks for the inputs, could you please suggest me in another way to delete the lines those are not having |, instead of mentioning like Normal data, Additional details..etc..since file is huge..need generic approach
since i don't have a file , given file is just example (1.txt), am going to a particular directory there am doing cat * here more than one file present, and doing few validations with sed and grep, so i want to user in the same way.
You may find it interesting that grep and sed work the exact same way. If you give it a filename it reads it; if not, it reads from the pipe. So you can pipe into awk just as easily as using it on a file, just leave off the filename.
cat file* | grep ... | awk ...
Though I would point out that's trivially rewritten as
grep ... file* | awk ...
cat is seldom actually needed.
You could as easily replace your entire program with awk, if we knew what it was. awk is like grep and sed tied together, with variables, which lets it work in simple and powerful ways.