Using AWK variables.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using AWK variables.
# 1  
Old 04-20-2010
Using AWK variables.

Hi all, I am new to the forum and Shell Script programming.

The problem is:
I need to do a script to search all system processes and show me hierarchical way the number of bytes occupied by each of the regions of the memory map of each process.

Today I got to show me the number of regions in the memory map, this I did just to check if it really is working on AWK, now I have not done is stored in 2 variables memory addresses that appear in the first chain MAPS each line of the file, I understand that the address is in hexadecimal format must subtract the address "minor" to "higher" but first change the string to uppercase divided into two variables (that I understand) and then perform the calculation for show me now if I need hehe happy Bytes

Here the public part of the file MAPS:

Code:
00110000-00126000 r-xp 00000000 08:01 8051 /usr/lib/libnssutil3.so
00126000-00129000 r--p 00015000 08:01 8051 /usr/lib/libnssutil3.so
00129000-0012a000 rw-p 00018000 08:01 8051 /usr/lib/libnssutil3.so
0012a000-0012d000 r-xp 00000000 08:01 7711 /usr/lib/libgmodule-2.0.so.0.2200.2
0012d000-0012e000 r--p 00002000 08:01 7711 /usr/lib/libgmodule-2.0.so.0.2200.2

The script is as follows:
Code:
#!/bin/sh
#!/bin/bash

filtrado()
{
RES=0
echo "PROCESS $n"
cat /proc/"$n"/maps |sed 's/-/ /' | awk 'END {print "TOTAL:",NR;}' 

awk '$2~/[p]/{ RES=RES+1;};END{print " PRIVATES:",RES;}' /proc/"$n"/maps

awk '$2~/[p]/ && $4~/[1]/ {RES=RES+1;};END{print " WITH SUPPORT:",RES;}' /proc/"$n"/maps

awk '$2~/[w]/ && $2~/[p]/ && $4~/[1]/ {RES=RES+1;};END{print " MODIFIABLE:",RES;}' /proc/"$n"/maps

awk '$2~/[x]/ && $2~/[p]/ && $4~/[1]/ {RES=RES+1;};END{print " EXECUTABLE:",RES;}' /proc/"$n"/maps

awk '$2~/[r]/ && $2!~/[w]/ && $2~/[p]/ && $4~/[1]/ {RES=RES+1;};END{print " SOLO LECTURA:",RES;}' /proc/"$n"/maps

awk '$5!~/[1-9]/ && $2~/[p]/ {RES=RES+1;};END{print " ANONYMOUS:",RES;}' /proc/"$n"/maps

awk '$2~/[w]/ && $2~/[p]/ && $5!~/[1-9]/ {RES=RES+1;};END{print " MODIFIABLE:",RES;}' /proc/"$n"/maps

awk '$2~/[x]/ && $2~/[p]/ && $5!~/[1-9]/ {RES=RES+1;};END{print " EXECUTABLE:",RES;}' /proc/"$n"/maps

awk '$2~/[r]/ && $2!~/[w]/ && $2~/[p]/ && $5!~/[1-9]/ {RES=RES+1;};END{print " ONLY READ:",RES;}' /proc/"$n"/maps

awk '$2~/[s]/{ RES=RES+1;};END{print " SHARED:",RES;}' /proc/"$n"/maps

awk '$2~/[s]/ && $4~/[1]/ {RES=RES+1;};END{print " WITH SUPPORT:",RES;}' /proc/"$n"/maps

awk '$2~/[w]/ && $2~/[s]/ && $4~/[1]/ {RES=RES+1;};END{print " MODIFICABLES:",RES;}' /proc/"$n"/maps

awk '$2~/[x]/ && $2~/[s]/ && $4~/[1]/ {RES=RES+1;};END{print " EXECUTABLE:",RES;}' /proc/"$n"/maps

awk '$2~/[r]/ && $2!~/[w]/ && $2~/[s]/ && $4~/[1]/ {RES=RES+1;};END{print " ONLY READ:",RES;}' /proc/"$n"/maps

awk '$5!~/[1-9]/ && $2~/[s]/ {RES=RES+1;};END{print " ANONIMOS:",RES;}' /proc/"$n"/maps

awk '$2~/[w]/ && $2~/[s]/ && $5!~/[1-9]/ {RES=RES+1;};END{print " MODIFIABLE:",RES;}' /proc/"$n"/maps

awk '$2~/[x]/ && $2~/[s]/ && $5!~/[1-9]/ {RES=RES+1;};END{print " EXECUTABLE:",RES;}' /proc/"$n"/maps

awk '$2~/[r]/ && $2!~/[w]/ && $2~/[s]/ && $5!~/[1-9]/ {RES=RES+1;};END{print " ONLY READ:",RES;}' /proc/"$n"/maps

echo " "

}

clear
for n in `seq 1 10000`;
do
m=/proc/$n/maps
if [ -f $m ]; then
filtrado $n
fi
done
exit

thank you very much guys Smilie

Last edited by Scott; 04-20-2010 at 03:37 PM.. Reason: Please use code tags
# 2  
Old 04-21-2010
Please provide a sample i/p and the expected o/p.
# 3  
Old 04-21-2010
Excuse me

Quote:
Originally Posted by devtakh
Please provide a sample i/p and the expected o/p.
Excuse me, but do you mean by i / p & o / p.

?
# 4  
Old 04-21-2010
He meant input and output
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing awk variables to bash variables

Trying to do so echo "111:222:333" |awk -F: '{system("export TESTO=" $2)}'But it doesn't work (2 Replies)
Discussion started by: urello
2 Replies

2. Shell Programming and Scripting

awk - Why can't value of awk variables be passed to external functions ?

I wrote a very simple script to understand how to call user-defined functions from within awk after reading this post. function my_func_local { echo "In func $1" } export -f my_func_local echo $1 | awk -F"/" '{for (k=1;k<=NF;k++) { if ($k == "a" ) { system("my_local_func $k") } else{... (19 Replies)
Discussion started by: sreyan32
19 Replies

3. Shell Programming and Scripting

AWK - variables

I have a data file like this: 49960 1157 32390 1227 1268 31 8 21 12 115 18493 67 250 2 2 237704 369658 52 21 312 38 27746 3174 19 160 9 555 6337 6071 43 33 I want to separate the field to three groups, $1 and $2 are the first group, $3 and $4 are the second group, $5 and $6... (1 Reply)
Discussion started by: xshang
1 Replies

4. Shell Programming and Scripting

ksh passing to awk multiple dyanamic variables awk -v

Using ksh to call a function which has awk script embedded. It parses a long two element list file, filled with text numbers (I want column 2, beginning no sooner than line 45, that's the only known thing) . It's unknown where to start or end the data collection, dynamic variables will be used. ... (1 Reply)
Discussion started by: highnthemnts
1 Replies

5. UNIX Desktop Questions & Answers

Variables within awk

Hi, I'm having trouble getting awk to read a variable with spaces in it. Input: vendorName="Bob's Steakhouse" awk -F":" '$2 ~ /'$vendorName'/ {print $1}' Purchases.dat Error: awk: $2 ~ /Bob's awk: ^ unterminated regexp The awk command isn't recognizing the entire string. It... (2 Replies)
Discussion started by: Cablephish
2 Replies

6. UNIX for Dummies Questions & Answers

Using variables in AWK

Hi, I'm pretty new to AWK and was wondering if someone could let me know how to execute varibles within an AWK statement. An example is below: NO=6 end=25 awk = 'NR == $NO, NR == $end' file1 > file2 I'm currently attempting to use this within a script but awk seems to read $NO and... (2 Replies)
Discussion started by: chris01010
2 Replies

7. Shell Programming and Scripting

awk variables

hi i am using the following awk code for some calculations: awk '/,1,/' "$LINE" >> "$count".dat awk '/,1,/ { i++ } END { print i }' "$count".dat awk '{sum+=$3} END {print sum}' 1.spd > test awk '{average=sum/i} END {print average}' 1.spd >> test can i use a variable created in one... (12 Replies)
Discussion started by: npatwardhan
12 Replies

8. Shell Programming and Scripting

Awk and Variables

Hi, I have some files in metrica (assume a pre-defined format) which i need to process and have some values in a .csv file. The script that does this, part of which is: procMetricaOMData() { host=$1 fileIN=$2 fileOUT=$3 $CATCMD $fileIN | \ awk -f... (4 Replies)
Discussion started by: deepak4you
4 Replies

9. Shell Programming and Scripting

OLD value for awk variables

I want to print old and new values of some field in Awk script. This is wat I done! Sample file is as follows But the output I god is bit different What must be the problem here? I am using bash. (2 Replies)
Discussion started by: yogesh_powar
2 Replies

10. Shell Programming and Scripting

Awk with variables

Hi I have a file with a line like this, wich is read by an awk script : Logical Name | Server Type | Server1 | DB1 | User1 | $PASSWORD | Serv2 |DB2 | User2 | $PASSWORD Awk reads it fine, but...it doesnt interpret the variable $PASSWORD as I wish. How do I tell awk to substitute $PASSWORD... (3 Replies)
Discussion started by: Scarlos
3 Replies
Login or Register to Ask a Question