Beruflich Dokumente
Kultur Dokumente
Benjamin S. Skrainka
University College London
Centre for Microdata Methods and Practice
January 3, 2012
Overview
We cover basic Unix survival skills:
Why you need some Unix in your life
How to get some Unix in your life
Basic commands
(Free) tools you cant live without
Why you need some Unix in your life
Unix/Linux will make you more productive:
Better performance
PC hardware:
Install Linux
OS/X
Getting Help
Conguration
Navigation
Editing
Help
To get help:
Navigation: space, /, f, b, . . .
StackOverow
Dotles:
PATH
LD_LIBRARY_PATH
vi
emacs
Other options (if installed):
nano
ssh YourLoginName@htc.uni.edu
Windows:
Download PuTTY
Pipe: |
Shell scripts
Regular Expressions
Example:
egrep -e ^[0-9]\{1,2\}[a-z] Data.txt | sort > out.txt
GREs
Most Unix tools support Generalized Regular Expressions:
Perl
Python
make
Listing 1: Text Extraction for NEOS Server: sed + bash
#! / bi n / bash
I NFI LE=neosOutput . t x t
f or varName i n V VK1 VK2 VK3 MIU HELPC HELPQ
do
sed n "/${varName} \ [ / , / ; /P" $I NFI LE > out . ${varName }. t x t
done
Listing 2: Text Extraction for NEOS Server: Python
#! / us r / bi n /env python
i mport r e
i mport s y s
i mport s t r i n g
s z I n F i l e = s y s . ar gv [ 1 ]
s zOut Di r = s y s . ar gv [ 2 ]
vTokens = [ V , VK1 , VK2 , VK3 , MIU ]
# Load NEOS i nput f i l e
f I n = open ( s z I n F i l e )
vText = f I n . r ead ( )
f I n . c l o s e ( )
f or szToken i n vTokens :
pat = r e . compi l e ( szToken + " \ [ [ ^ ; ] ; " , r e . DOTALL )
t gt = pat . s e ar c h ( vText )
i x S t a r t = t gt . s t a r t ( )
i xEnd = t gt . end ( )
f = open ( s zOut Di r + / + szToken + . out , w )
f . wr i t e ( vText [ i x S t a r t : i xEnd ] )
f . c l o s e ( )
Comparing Data Files
#!/usr/bin/env python
"""
isApprox.py - test approximate equality of data
"""
import numpy as np
import sys
# Setup
if 3 != len( sys.argv ) :
print Syntax error: isApprox.py file1 file2
sys.exit( -1 )
szFile1 = sys.argv[ 1 ]
szFile2 = sys.argv[ 2 ]
m1 = np.loadtxt( szFile1 )
m2 = np.loadtxt( szFile2 )
Comparing Data Files
# Compare data
if m1.ndim != m2.ndim :
print Matrices are not conformable.
sys.exit( -1 )
if m1.shape[ 0 ] != m2.shape[ 0 ] :
print Error: different numbers of rows.
sys.exit( -1 )
if 2 == m1.ndim :
if m1.shape[ 1 ] != m2.shape[ 1 ] :
print Error : different numbers of columns.
sys.exit( -1 )
print Norm(diff): , np.linalg.norm( m1 - m2, ord=2 )
print max abs diff : , np.max( np.abs( m1 - m2 ) )