AWK programming


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK programming
# 1  
Old 10-07-2011
AWK programming

Hi All,
I read the AWK manual in the MAN page. But i didn't understand the below piece of code in the script

Code:
TABLE=`echo "${FILE}" | awk -F"/" '{print $NF}' | cut -d"." -f1 | awk -F"_" '{print $NF}' 2>> ${LOGFILE}`;

Please explain the above code.

Thanks in advance .......

Regards,
Dathu

Last edited by radoulov; 10-07-2011 at 04:56 PM.. Reason: Code tags!
# 2  
Old 10-07-2011
given a ${FILE}/a/b/c_d_e.txt get an 'e'.
an alternative solution might be:
Code:
echo '/a/b/c_d_e.txt' | nawk -F'[/_.]' '{print $(NF-1)}'

This User Gave Thanks to vgersh99 For This Post:
# 3  
Old 10-07-2011
given a ${FILE}/a/b/c_d_e.txt get an 'e'.
Let's breakdown the pipes:
Code:
echo '/a/b/c_d_e.txt' | awk -F"/" '{print $NF}'
c_d_e.txt

Code:
echo '/a/b/c_d_e.txt' | nawk -F"/" '{print $NF}' | cut -d"." -f1
c_d_e

and finally
Code:
echo '/a/b/c_d_e.txt' | nawk -F"/" '{print $NF}' | cut -d"." -f1 | awk -F"_" '{print $NF}'
e

the alternative solution might be:
Code:
echo '/a/b/c_d_e.txt' | nawk -F'[/_.]' '{print $(NF-1)}'

# 4  
Old 10-07-2011
Emphasis on "might". If the filename can contain multiple dots, such as archive.tar.gz, the results would not be equivalent.

Regards,
Alister

---------- Post updated at 04:13 PM ---------- Previous update was at 04:05 PM ----------

The following single sed invocation should be equivalent to that awk|cut|awk pipeline:
Code:
sed 's/.*\///; s/\..*//; s/.*_//'

Regards,
Alister
This User Gave Thanks to alister For This Post:
# 5  
Old 10-07-2011
Quote:
Originally Posted by alister
Emphasis on "might". If the filename can contain multiple dots, such as archive.tar.gz, the results would not be equivalent.

Regards,
Alister

---------- Post updated at 04:13 PM ---------- Previous update was at 04:05 PM ----------

The following single sed invocation should be equivalent to that awk|cut|awk pipeline:
Code:
sed 's/.*\///; s/\..*//; s/.*_//'

Regards,
Alister
good point/catch!
Code:
echo '/a/b/c_d_e.tar.gz' | nawk -F'([/_])' '{print substr($NF, 1,index($NF,".")-1)}'

or alternatively with sed (assuming there're no .-s or _-s in the directory names - I know, lame assumption):
Code:
echo '/a/b/c_d_eklj.tar.gz' | sed 's#[^.][^.]*_\([^.][^.]*\)[.].*#\1#'


Last edited by vgersh99; 10-07-2011 at 05:28 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk programming -Passing variable to awk for loop

Hi All, I am new to AWK programming. I have the following for loop in my awk program. cat printhtml.awk: BEGIN -------- <some code here> END{ ----------<some code here> for(N=0; N<H; N++) { for(M=5; M<D; M++) print "\t" D ""; } ----- } ... (2 Replies)
Discussion started by: ctrld
2 Replies

2. Shell Programming and Scripting

awk programming

Need assistance using awk . Need assistance in awk programming. Any idea of getting the marked data into a file. </tr> <tr> <td class='labelOptional_ind'> cdr.00012325.0000000000000000.20130612.050005.WANP4722_csv </td> <td width='15%' class='labelOptional'> <div align='center'>... (8 Replies)
Discussion started by: ajayram_arya
8 Replies

3. Programming

awk programming

I have the list of numbers in a file 105.1 102.0 100.5 100 98 97.5 95 ... I want to get how many times I have numbers greater than a particular limit, say 100 in the list. How can I do that with awk command? (5 Replies)
Discussion started by: pranto_d
5 Replies

4. Shell Programming and Scripting

awk programming

Good morning to everyone! guys, help me please I have a file like this one: diamond 5 7.8 77777765 1 7 1234567890 9 3.5 diamond 2 1 1234567890 3 6.8 77777765 0 4 os Solaris it's only example, columns may be more, but in my case only 3 columns so, my question how I can group... (1 Reply)
Discussion started by: shizik
1 Replies

5. UNIX for Dummies Questions & Answers

awk programming

Good morning! guys, help me please I have a file like this one: diamond 5 7.8 77777765 1 7 1234567890 9 3.5 diamond 2 1 1234567890 3 6.8 77777765 0 4 os Solaris it's only example, columns may be more, but in my case only 3 columns so, my question how I can group according to... (1 Reply)
Discussion started by: shizik
1 Replies

6. Shell Programming and Scripting

awk programming

Hi I have a multi -line file which is sorted by the 1-st colomn in the following format: 400 0000 0001 1000 1010 0111 0000 1000 0000 402 1101 0000 1100 1010 0111 1000 1000 0000 403 1001 0000 1100 1010 0111 0000 1000 0000 495 1000 0000 1100 ... (4 Replies)
Discussion started by: aoussenko
4 Replies

7. UNIX for Dummies Questions & Answers

awk (?) programming

Hello i need help with following problem: i need to update a file containing records in following format: student1 classa student2 classb student3 student4 classc i need to associate EACH student with a class in my output file ... so for students 3 and 4, i need to create a... (12 Replies)
Discussion started by: alrinno
12 Replies

8. Shell Programming and Scripting

need help with awk programming

Hello Friends I want to process only those lines which are not started with a * or " example File name: GRX "RxDataTime, NSysClkEn, Frame","Size","Sleep","TNum","TSet","TWait" *Init Start *Comment Generated from: C:\Documents and Settings 000000,0000,1,0,0,0,0,0,0... (8 Replies)
Discussion started by: user_prady
8 Replies

9. Shell Programming and Scripting

awk programming

Hi all, i want to study harder awk programming. where can i get a good examples, problems and solutions. i'm in a hurry.. thanks, (5 Replies)
Discussion started by: tungaw2004
5 Replies

10. Shell Programming and Scripting

awk programming

Hi folks, I would like to know the difference between shell programming and awk programming. Actually i have developed a few applications in both but i could not find a better difference other than the syntax differences. For example, the awk programming syntax is complicated. It has "{" and... (4 Replies)
Discussion started by: Nisha
4 Replies
Login or Register to Ask a Question