Saturday, May 30, 2009

awk example using arrays, the split() function, and regex

#record format

Request: 10
As Of: 05/27/2009 1:34:58 pm
Irrevelant Data ...
Summary: Virus on PC.
Description: Virus on PC.

Request: 11
As Of: 05/27/2009 1:34:58 pm
Irrevelant Data...
Summary: room1 several computers in a row are freezing up and student...
Description: room1 several computers in a row are freezing up and students have to reboot.


awk -v pat1="room1" -v pat2="freezing|crash" 'BEGIN { RS=""; FS="Summary"; i=0; j=0; k=0 } {\
i=i+1; \
field1=$1; \
split(field1,sub_fields,":"); \
request=sub_fields[1]; \
the_date=sub_fields[4]; \
if ($2 ~ pat1){ \
k=k+1; \
if ($2 ~ pat2){ \
j=1+j; \
print "***Record***", request, the_date; print " ---Start Data---", $2; } } \
} END { print "Processed, ", i, ",num of lab matches,", k,", records num of keywords matches: ,", j }' requests


#Output

***Record*** Request 05/27/2009 1
---Start Data--- : room1 several computers in a row are freezing up and student...
Description: room1 several computers in a row are freezing up and students have to reboot.
Processed, 2 ,num of lab matches, 1 , records num of keywords matches: , 1

Friday, May 29, 2009

Removing carriage returns with sed

sed -e s/$'\r'/\ /g input_file # remove carriage returns

sed -e 's/\n/ /g' input_file # remove newlines

Insert text before a pattern with sed

cat some_file | sed '/pattern/i\
text to insert
' > output_file

Remove empty lines with vi

In ex mode:

:1,$s/^$//

Sometimes you need to do this too:

:1,$s/^\n//


May be able to do this:

:1,$s/^[\n$]//

Show special characters in vi

:set list

# see control chars (tabstops, control characters, etc)

Example of processing multiline records with awk

Processing multiline records is tricky. It is easier to use blank lines as record separators.


#example records
ink1 4.99
red

ink2 5.99
yellow

awk ' BEGIN { RS=""; FS=" "} { r1=$1; r2=$2; r3=$3; print "***Record***" r1 " " r2 " " r3 }' inks

#What it prints out
***Record***ink1 4.99
red
***Record***ink2 5.99
yellow

Thursday, May 28, 2009

Creating a mysql user and granting privileges

//standard way of creating a user

CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';


//Creating a user and granting privileges:

GRANT ALL PRIVILEGES ON table.* TO 'user'@'localhost' identified by 'password'

//Show privileges for a user:

show grants for 'user'@'localhost'

Install Windows nic driver on Linux

#Download ndiswrapper

make #this will install the kernel module (after compiling)
modprobe ndiswrapper
ndiswrapper -i driver.inf
ndiswrapper -m #generate modprobe alias for ndiswrapper
#restart


#Check installed drivers:

ndiswrapper -l

Showing a decimal expansion with bc

#3 digits after the decimal place
echo "scale=3; 41.0 / 939.0" | bc

Wednesday, May 27, 2009

awk script to generate count of each program

#csv of format:
#the_program, any_data, any_data, ....
#
#this script counts number of repetitions of a program



cat program-list.csv | awk -F',' '/[a-zA-Z0-9]+/{print $1}' | sort | uniq -c

Tuesday, May 26, 2009

Create a dojo dialog widget

Create Messagebox / popup for Java

//Assuming that the current object is a JFrame:

JOptionPane.showMessageDialog(this, "Some Message");

Monday, May 25, 2009

Php declare a constant

define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."