awk help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk help
# 1  
Old 10-02-2018
awk help

Dear Members,
I need a help about manupulating a text file; The contents are like;

Code:
MNTRANKPC087559 MNTRANKPC086921 MNTRANKPC109675 MNTRANKPC094376 :a1360
MNTBTRN00084114 MNTBTRN00123212 :a8483
MNTBTRN00056800 MNTRANKPC109765 MNTBTRN00056800 :a9089
MNTBTRN00011953 MNTBTRN00055437 :b2134
MNTBTRN00056618 MNTBTRN00056618 :b3591
MNTRANKPC114848 MNTRANKPC114848 :b3884
mntbtrn00146067 MNTBTRN00120769 :b3970
MNDEMUCTS2P187 MNDEMUCTS2P528 MNDEMUCTS2P128 MNDEMUCTS2P195 MNDEMUCTS2P040 MNDEMUCTS2P419 :b6052
MNTBTRN00055027 MNTRANKPC086922 :b6262
MNTRANKPC109690 MNTRANKPC109615 :c3788
MNTBTRN00045347 MNTBTRD00030373 :c6043
MNTBTRN00121867 MNTBTRN00023939 MNTBTRN00038590 :c6063
MNTBTRN00056712 MNTBTRN00056712 MNTBTRN00056712 :c6781
MNTBTRD00047186 :c9362
MNTBTRN00137582 MNTBTRN00111419 MNTBTRN00144817 :d0189
MNTBTRN00059593 MNTRANKPC113100 :d1756
MNTBTRN00021952 MNTBTRN00017771 MNTRANKPC114847 :d2289
MNTBTRD00031053 MNTBTRN00059593 MNTBTRD00139444 :e0653
MNTBTRN00000042 MNTBTRN00000042 MNTBTRN00059367 :e1243
MNTBTRD00139444 MNTBTRN00000052 MNTBTRD00139444 MNTRANKPC109675 :e3341
MNTBTRN00130620 MNTBTRN00130620 :e4534
MNTBTRD00030188 MNTRANKPC112829 :e6253
MNTBTRN00011956 MNTBTRN00011956 MNTBTRN00011956 MNTBTRN00011956 MNTBTRN00011956 MNTBTRN00011956 MNTBTRN00011956 MNTBTRN00011956 :e7233
MNTBTRN00011601 MNTBTRN00126655 :e9442
MNTBTRN00037633 MNTBTRN00146063 :f0226
MNTBTRD00143519 MNTRANKPC105541 :f5344
MNTBTRN00120764 MNDEMUCPC112129 :g8947
MNTBDED00040638 MNTBDED00040718 MNDEMUCPC115172 :g9531
MNTBTRN00021931 MNTBTRN00021931 :ut3ob
MNTBTRN00045345 MNTBTRN00120772 :ut4ta

What I want is ;
Code:
4:a1360
2:a8483

and goes to the end of each record.Explaination for first row of the text file is 4:a1360 Why?
because there are MNTRANKPC087559 MNTRANKPC086921 MNTRANKPC109675 MNTRANKPC094376 (total 4 columns) till :a1360
If I am talking for the second row 2:a8483 Because there are MNTBTRN00084114 MNTBTRN00123212 (total 2 columns) till to the :a8483

How Can I manipulate my text file?

Thank you very much for your concern




Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 10-02-2018 at 09:26 AM.. Reason: Added CODE tags.
# 2  
Old 10-02-2018
Any attempts / ideas / thoughts from your side?


Do you want those two lines only? Or an equivalent output for every single input line?
# 3  
Old 10-02-2018
Code:
awk '$0=(NF-1)$NF' input_file

# 4  
Old 10-02-2018
Dear Moderator;
I want to get lines as my code explained then redirect results to a new file
# 5  
Old 10-02-2018
The question was more if you made up your mind on how to tackle this problem; any preferred tools? Any algorithm? Any attempt, even if it failed?
And, there was a second question as well.
# 6  
Old 10-02-2018
I want to thank to rdrtx1 beccause;


Code:
awk '$0=(NF-1)$NF' input_file


AND my output is;


Code:
4:a1360
2:a8483
3:a9089
2:b2134
2:b3591
2:b3884
2:b3970
6:b6052
2:b6262
2:c3788
2:c6043
3:c6063
3:c6781
1:c9362
3:d0189
2:d1756
3:d2289
3:e0653
3:e1243
4:e3341
2:e4534
2:e6253
8:e7233
2:e9442
2:f0226
2:f5344
2:g8947
3:g9531
2:ut3ob
2:ut4ta


That's what I want


Moderator's Comments:
Mod Comment Seriously: Please use CODE tags as required by forum rules!


------ Post updated at 04:35 PM ------

Code:
awk '$0=(NF-1)$NF' input_file

is my solution from rdrtx1

Last edited by RudiC; 10-02-2018 at 09:45 AM.. Reason: Added CODE tags.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk output yields error: awk:can't open job_name (Autosys)

Good evening, Im newbie at unix specially with awk From an scheduler program called Autosys i want to extract some data reading an inputfile that comprises jobs names, then formating the output to columns for example 1. This is the inputfile: $ more MapaRep.txt ds_extra_nikira_usuarios... (18 Replies)
Discussion started by: alexcol
18 Replies

2. Shell Programming and Scripting

Pass awk field to a command line executed within awk

Hi, I am trying to pass awk field to a command line executed within awk (need to convert a timestamp into formatted date). All my attempts failed this far. Here's an example. It works fine with timestamp hard-codded into the command echo "1381653229 something" |awk 'BEGIN{cmd="date -d... (4 Replies)
Discussion started by: tuxer
4 Replies

3. Shell Programming and Scripting

Passing awk variable argument to a script which is being called inside awk

consider the script below sh /opt/hqe/hqapi1-client-5.0.0/bin/hqapi.sh alert list --host=localhost --port=7443 --user=hqadmin --password=hqadmin --secure=true >/tmp/alerts.xml awk -F'' '{for(i=1;i<=NF;i++){ if($i=="Alert id") { if(id!="") if(dt!=""){ cmd="sh someScript.sh... (2 Replies)
Discussion started by: vivek d r
2 Replies

4. Shell Programming and Scripting

HELP with AWK one-liner. Need to employ an If condition inside AWK to check for array variable ?

Hello experts, I'm stuck with this script for three days now. Here's what i need. I need to split a large delimited (,) file into 2 files based on the value present in the last field. Samp: Something.csv bca,adc,asdf,123,12C bca,adc,asdf,123,13C def,adc,asdf,123,12A I need this split... (6 Replies)
Discussion started by: shell_boy23
6 Replies

5. Shell Programming and Scripting

awk command to compare a file with set of files in a directory using 'awk'

Hi, I have a situation to compare one file, say file1.txt with a set of files in directory.The directory contains more than 100 files. To be more precise, the requirement is to compare the first field of file1.txt with the first field in all the files in the directory.The files in the... (10 Replies)
Discussion started by: anandek
10 Replies

6. Shell Programming and Scripting

Comparison and editing of files using awk.(And also a possible bug in awk for loop?)

I have two files which I would like to compare and then manipulate in a way. File1: pictures.txt 1.1 1.3 dance.txt 1.2 1.4 treehouse.txt 1.3 1.5 File2: pictures.txt 1.5 ref2313 1.4 ref2345 1.3 ref5432 1.2 ref4244 dance.txt 1.6 ref2342 1.5 ref2352 1.4 ref0695 1.3 ref5738 1.2... (1 Reply)
Discussion started by: linuxkid
1 Replies

7. Shell Programming and Scripting

Problem with awk awk: program limit exceeded: sprintf buffer size=1020

Hi I have many problems with a script. I have a script that formats a text file but always prints the same error when i try to execute it The code is that: { if (NF==17){ print $0 }else{ fields=NF; all=$0; while... (2 Replies)
Discussion started by: fate
2 Replies

8. Shell Programming and Scripting

awk: assign variable with -v didn't work in awk filter

I want to filter 2nd column = 2 using awk $ cat t 1 2 2 4 $ VAR=2 #variable worked in print $ cat t | awk -v ID=$VAR ' { print ID}' 2 2 # but variable didn't work in awk filter $ cat t | awk -v ID=$VAR '$2~/ID/ { print $0}' (2 Replies)
Discussion started by: honglus
2 Replies

9. Shell Programming and Scripting

scripting/awk help : awk sum output is not comming in regular format. Pls advise.

Hi Experts, I am adding a column of numbers with awk , however not getting correct output: # awk '{sum+=$1} END {print sum}' datafile 2.15291e+06 How can I getthe output like : 2152910 Thank you.. # awk '{sum+=$1} END {print sum}' datafile 2.15079e+06 (3 Replies)
Discussion started by: rveri
3 Replies

10. Shell Programming and Scripting

Awk problem: How to express the single quote(') by using awk print function

Actually I got a list of file end with *.txt I want to use the same command apply to all the *.txt Thus I try to find out the fastest way to write those same command in a script and then want to let them run automatics. For example: I got the file below: file1.txt file2.txt file3.txt... (4 Replies)
Discussion started by: patrick87
4 Replies
Login or Register to Ask a Question