Sponsored Content
Top Forums Shell Programming and Scripting Need help with sed/awk command Post 302922121 by Corona688 on Wednesday 22nd of October 2014 01:26:20 PM
Old 10-22-2014
This is an effort at doing it 'properly', counting brackets and fields. I had to cheat a lot, by converting it into something more readily understandable, stripping out all whitespace and newlines then adding my own where they look appropriate. This makes it consistent enough to handle in a shell language.

Code:
#!/bin/bash

INPUTFILE="data"

# Strip out all newlines and whitespace, flattening it into something
# we can process line-by-line.
# Then 'xargs' eats quotes.
# Then we feed it into awk, which parses it counting { } ( ),
# and extracts the fields of interest.
sed 's/[)][ \r\n\t]*;/)/g;s/[{}();]/ & /g' "$INPUTFILE" |
        tr -s ' \n' '\n' | xargs -n 1 | awk '
/;/ {   L=0 ; next }

/[{(]/ {
        if(DEP == 1)    PDNAME[++PDN]=STR[1]
        if(S ~ /#surfaces$/) PNAME[++PN]=STR[1]

        S=S"#"STR[1]
        DEP++

        L=0
#       printf(">> %s\n", S);
        next
}

/[})]/ {
        if(S ~ /#fields$/) {
                C=""
                for(N=1; N<=L; N++) C = C " " STR[N]
                FIELDS[++F]=substr(C,2);
        }

        L=0
        sub(/#[^#]*$/, "", S);
        DEP--
#       printf("<< %s\n", S);
        next
}

{       STR[++L]=$0     }

END {
        printf("planename=(");
        for(N=1; N<=PN; N++)    printf(" \"%s\"", PNAME[N]);
        printf(" )\n");

        printf("planedictname=(");
        for(N=1; N<=PDN; N++)   printf(" \"%s\"", PDNAME[N]);
        printf(" )\n");

        printf("fields=(");
        for(N=1; N<=F; N++)     printf(" \"%s\"", FIELDS[N]);
        printf(" )\n");
}' > /tmp/$$

# Read this into the shell to set the arrays
. /tmp/$$
# Remove temp file
rm -f /tmp/$$

echo "planedictname ${planedictname[@]}"
echo "planename ${planename[@]}"
echo "fields ${fields[@]}"

Code:
$ ./trans.sh

planedictname planeDictName planeDictName2
planename planeName1 planeName2
fields p U T p U

$

This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

What do you know about the Sed and Awk command??

I just need some information on what they can be use for and whatever else there is. anything you know, state here (2 Replies)
Discussion started by: TRUEST
2 Replies

2. Shell Programming and Scripting

Help with Sed or AWK command!!!

Hi, I need help with Sed or AWk command.i want to remove all the numerals from the file name.These files are stored within a text file and after the numerals are removed,i need to redirect its output to another new .txt file. Input: aa_1002985_952.xml aa_bb_032207.txt... (5 Replies)
Discussion started by: kumarsaravana_s
5 Replies

3. Shell Programming and Scripting

sed for this awk command

Hi what would be the sed equivalent of this awk command: awk '/$getsn/{getline;next}{print}' file It deletes the variable found and the next line after it in a file. Thanks (3 Replies)
Discussion started by: wisher115
3 Replies

4. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies

5. Shell Programming and Scripting

Interpret sed and awk in the below command.

Could you interpret the following sed and awk command for me? command: cat tempfile2 |sed "s/\(BUILD-3-.*-\.-\)\(.*\..*\..*\)/\2/" | awk '{printf "%-8.8s %-23.23s %-30.30s %-50.50s\n", $1,$2,$3,substr($0,index($0,$4))}' > outfile2 2>/dev/null input:data in tempfile2... (5 Replies)
Discussion started by: vj8436
5 Replies

6. Shell Programming and Scripting

SED/AWK command

Hi All, I have a file which has following lines : - Deploy XXX application <server-address> - info <server-address> - Deploy XXX application <server-address> - info <server-address> - Deploy XXX application <server-address> - info <server-address> I want output like this way in... (8 Replies)
Discussion started by: bhaskar_m
8 Replies

7. Shell Programming and Scripting

Command line - awk, sed

My input file gfile values is CTRY=GM&PROJTYPE=SP&PROJECTTYPE=Small+Project If i am giving PROJECTTYPE then it must give Small Project awk -F"&" '{for (i=1; i<=NF; i++) if ($i ~ "^"PAT) {sub ("^"PAT"=", "", $i); sed 's/'+'/""/' $i ; print $i }}' PAT=$1 ... (6 Replies)
Discussion started by: nag_sathi
6 Replies

8. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

9. Shell Programming and Scripting

Need help with sed/awk command

Dear ALL, I am still struggling with some basic sed operations. I want to change path in a file as shown below: case_OM = PV4Reader( FileName='/home/linuxUser/demoCases/s1/case/case.OM' ) to case_OM = PV4Reader( FileName='/home/linuxUser/demoCases/s2/case/case.OM' ) In this file there... (5 Replies)
Discussion started by: linuxUser_
5 Replies

10. Shell Programming and Scripting

Help with sed/awk command

Hi All, This is my first thread. Hopefully you guys can help me out. I have a csv file, that provides access to managers to a tool. The file is loaded onto our server containing all the assc id's with a trailing comma. For ex: 182950, 123456, However, we receive a file that... (8 Replies)
Discussion started by: Prateek Dubey
8 Replies
MODULES.DEP(5)							    modules.dep 						    MODULES.DEP(5)

NAME
modules.dep, modules.dep.bin - Module dependency information SYNOPSIS
/lib/modules/modules.dep /lib/modules/modules.dep.bin DESCRIPTION
modules.dep.bin is a binary file generated by depmod listing the dependencies for every module in the directories under /lib/modules/version. It is used by kmod tools such as modprobe and libkmod. Its text counterpar is located in the same directory with the name modules.dep. The text version is maintained only for easy of reading by humans and is in no way used by any kmod tool. These files are not intended for editing or use by any additional utilities as their format is subject to change in the future. You should use the modinfo(8) command to obtain information about modules in a future proof and compatible fashion rather than touching these files. COPYRIGHT
This manual page originally Copyright 2002, Rusty Russell, IBM Corporation. Maintained by Jon Masters and others. SEE ALSO
depmod(8), modprobe(8) AUTHORS
Jon Masters <jcm@jonmasters.org> Developer Lucas De Marchi <lucas.de.marchi@gmail.com> Developer kmod 01/28/2018 MODULES.DEP(5)
All times are GMT -4. The time now is 07:46 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy