Sponsored Content
Top Forums Shell Programming and Scripting Search & Replace regex Perl one liner to AWK one liner Post 302536561 by verge on Wednesday 6th of July 2011 02:04:35 PM
Old 07-06-2011
Hi and thanks Danmero!

Here are a few sample lines ... I only want the lines with red ISA on a new line not the ones in purple ISA ... I know its a bit messy ... I can explain the logic/syntax of the file, if you'd like

Code:
          ISA~00~          ~00~          ~ZZ~SEND  MFG       ~ZZ~RECV MFG       ~110616~2235~U~00200~000003972~0~P~\
GS~FA~SEND  MFG~RECV MFG~20110616~2235~4075~X~004010
ST~997~00001
AK1~SH~4075
AK2~856~000008260
AK5~AISATF
AK9~A~00001~00001~00001
SE~006~00001
GE~00001~4075
IEA~00001~000003972&ISA!00!SEND DATA  !00!SEND DATA  !ZZ!SEND  PDCPO     !ZZ!RECV            !110616!1540!U!00401!000009564!0!P!:
GS!FA!SEND  PDCPO!RECV!20110616!1540!9669!X!004010
ST!997!000021081
AK1!SH!12738
AK9!A!1!1!1
SE!4!000021081
GE!1!9669
IEA~1~00000956`ISA~00~SEND DATA  ~00~SEND DATA  ~ZZ~SEND  PDCPO     ~ZZ~RECV            ~110616~1540~U~00401~000009565~0~P~:>GS~FA~SEND  PDCPO~RECV~20110616~1540~9670~X~004010>ST~997~000021082>AK1~SH~12739>AK9~A~1~1~1>SE~4~000021082>GE~1~9670>IEA~1~000009565

---------- Post updated 07-06-11 at 11:04 AM ---------- Previous update was 07-05-11 at 05:38 PM ----------

Thought I'd add some details on the file.

ISA, GS, ST, AK1, AK2, AK5, AK9, SE, GE, IEA are line headers and generally follow the same order. ISA is the beginning of the record, IEA is the end of the record. There are tens of thousands of records in a given file.

The file also has non-word character field seperators (ie ~ !), it also has line seperators (either a newline or non-word character, later an awk script will change all [\W] to newlines)
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk/perl one-liner assist

In a ~4GB file there are lines like, 13.13.4.3 Googe.com - Jan/23/2011:00:00:00 +0000 "URL Google HTTP/1.1" 45 56 208 - "http://www.gogle.com/webhp?hl=en&tab=nw#hl=en&source=hp&biw=1366&bih=667&q=hello&aq=f&aqi=&aql=&oq=&fp=c432485467934a89" ".Net; Fox" - 13.145.3.3 Goge.com -... (3 Replies)
Discussion started by: gameboy87
3 Replies

2. Shell Programming and Scripting

awk multiple-line search and replace one-liner

Hi I am trying to search and replace a multi line pattern in a php file using awk. The pattern starts with <div id="navbar"> and ends with </div> and spans over an unknown number of lines. I need the command to be a one liner. I use the "record separator" like this : awk -v... (8 Replies)
Discussion started by: louisJ
8 Replies

3. Shell Programming and Scripting

awk: Multiple search patterns & print in an one liner

I would like to print result of multiple search pattern invoked from an one liner. The code looks like this but won't work gawk -F '{{if ($0 ~ /pattern1/) pat1=$1 && if ($0 ~ /pattern2/) pat2=$2} ; print pat1, pat2}' Can anybody help getting the right code? (10 Replies)
Discussion started by: sdf
10 Replies

4. Shell Programming and Scripting

Need an awk / sed / or perl one-liner to remove last 4 characters with non-unique pattern.

Hi, I'm writing a ksh script and trying to use an awk / sed / or perl one-liner to remove the last 4 characters of a line in a file if it begins with a period. Here is the contents of the file... the column in which I want to remove the last 4 characters is the last column. ($6 in awk). I've... (10 Replies)
Discussion started by: right_coaster
10 Replies

5. Shell Programming and Scripting

Replacing Awk with One-liner Perl

can someone help me translate the following command, from: /usr/bin/awk "/^$TOFDAYM $TOFDAYD /,0" $LOGFILE to something like perl -e ..... basically, i want to use perl to do awk functions within a shell script. i want to do the above awk, using perl. any suggestions? (9 Replies)
Discussion started by: SkySmart
9 Replies

6. UNIX for Dummies Questions & Answers

One liner pattern search with awk/sed/grep

I have an array containing bunch of characters. I have to check this array for specific character and if "Not Found than" use a goto statement to go to USAGE set options = (A B C D E F) @ i = 0 while ($i <= ${#options}) if ($options != "F" || $options != "D") then goto USAGE endif @... (1 Reply)
Discussion started by: dixits
1 Replies

7. Shell Programming and Scripting

replace awk with a perl one liner (REGEXP and FS)

hello, I want to replace awk with a perl one liner in unix. i use in awk REGEX and FS ( field separator) because awk syntaxes in different unix os versions have not the same behaviour. Awk, Nawk and GNU Awk Cheat Sheet - good coders code, great reuse i have a file named "file" and want... (5 Replies)
Discussion started by: bora99
5 Replies

8. UNIX for Dummies Questions & Answers

Perl one liner to replace text

Not quite a unix question but problem in a perl command. Taking a chance if someone knows about the error cat 1 a b c d perl -p -e 's/a/b/g' 1 b b c d What is the problem here?? perl -p -i -e 's/a/b/g' 1 Can't remove 1: Text file busy, skipping file. (2 Replies)
Discussion started by: analyst
2 Replies

9. UNIX for Dummies Questions & Answers

What awk 1-liner will replace value in 1stField of a delimited file with the value of '5' ?

Hi, I am a newbie to awk. Here is my problem. Looking for an awk 1-liner to solve it: My Computing Environment: - Solaris10 - I prefer to use csh or sh shells 1. Lets say my input file is File1.dat (delimter = | ) and looks as follows: (File1.dat) ... (1 Reply)
Discussion started by: andy b
1 Replies

10. Shell Programming and Scripting

PERL one liner

hi, I am using PERL one liner for oracle database connection as : $PERL -e "use DBI; DBI->connect(qw(DBI:Oracle:SID user passwd));" is there a way to append select statement to this connection ? i.e. DB connection and select stmt in one line ? how to do sysdba connection using one lines... (1 Reply)
Discussion started by: talashil
1 Replies
PERLCC(1)						 Perl Programmers Reference Guide						 PERLCC(1)

NAME
perlcc - generate executables from Perl programs SYNOPSIS
$ perlcc hello # Compiles into executable 'a.out' $ perlcc -o hello hello.pl # Compiles into executable 'hello' $ perlcc -O file # Compiles using the optimised C backend $ perlcc -B file # Compiles using the bytecode backend $ perlcc -c file # Creates a C file, 'file.c' $ perlcc -S -o hello file # Creates a C file, 'file.c', # then compiles it to executable 'hello' $ perlcc -c out.c file # Creates a C file, 'out.c' from 'file' $ perlcc -e 'print q//' # Compiles a one-liner into 'a.out' $ perlcc -c -e 'print q//' # Creates a C file 'a.out.c' $ perlcc -I /foo hello # extra headers (notice the space after -I) $ perlcc -L /foo hello # extra libraries (notice the space after -L) $ perlcc -r hello # compiles 'hello' into 'a.out', runs 'a.out'. $ perlcc -r hello a b c # compiles 'hello' into 'a.out', runs 'a.out'. # with arguments 'a b c' $ perlcc hello -log c # compiles 'hello' into 'a.out' logs compile # log into 'c'. DESCRIPTION
perlcc creates standalone executables from Perl programs, using the code generators provided by the B module. At present, you may either create executable Perl bytecode, using the "-B" option, or generate and compile C files using the standard and 'optimised' C backends. The code generated in this way is not guaranteed to work. The whole codegen suite ("perlcc" included) should be considered very experimen- tal. Use for production purposes is strongly discouraged. OPTIONS
-Llibrary directories Adds the given directories to the library search path when C code is passed to your C compiler. -Iinclude directories Adds the given directories to the include file search path when C code is passed to your C compiler; when using the Perl bytecode option, adds the given directories to Perl's include path. -o output file name Specifies the file name for the final compiled executable. -c C file name Create C code only; do not compile to a standalone binary. -e perl code Compile a one-liner, much the same as "perl -e '...'" -S Do not delete generated C code after compilation. -B Use the Perl bytecode code generator. -O Use the 'optimised' C code generator. This is more experimental than everything else put together, and the code created is not guaran- teed to compile in finite time and memory, or indeed, at all. -v Increase verbosity of output; can be repeated for more verbose output. -r Run the resulting compiled script after compiling it. -log Log the output of compiling to a file rather than to stdout. perl v5.8.0 2003-02-18 PERLCC(1)
All times are GMT -4. The time now is 07:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy