Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

About this user

Aniline

« Newer Snippets
Older Snippets »
Showing 1-10 of 18 total  RSS 

SED by itself

//SED examples


grep widget mlb | awk '{print $3}' | sed 's/-->/ /g'

sed sub --> with blank space g= global

 # substitute "foo" with "bar" ONLY for lines which contain "baz"
 sed '/baz/s/foo/bar/g'

 # substitute "foo" with "bar" EXCEPT for lines which contain "baz"
 sed '/baz/!s/foo/bar/g'

 # change "scarlet" or "ruby" or "puce" to "red"
 sed 's/scarlet/red/g;s/ruby/red/g;s/puce/red/g'   # most seds
 gsed 's/scarlet\|ruby\|puce/red/g'      

Substitute newlines for &
sed -e 's/&/\n/g' test.txt 

AWK more of it.

// description of your code here

MORE AWK

HANDY ONE-LINERS FOR AWK                                  22 July 2003
compiled by Eric Pement <pemente@northpark.edu>           version 0.22
   Latest version of this file is usually at:
   http://www.student.northpark.edu/pemente/awk/awk1line.txt


USAGE:

    Unix:  awk '/pattern/ {print "$1"}'    # standard Unix shells
 DOS/Win:  awk '/pattern/ {print "$1"}'    # okay for DJGPP compiled
           awk "/pattern/ {print \"$1\"}"  # required for Mingw32

Most of my experience comes from version of GNU awk (gawk) compiled for
Win32. Note in particular that DJGPP compilations permit the awk script
to follow Unix quoting syntax '/like/ {"this"}'. However, the user must
know that single quotes under DOS/Windows do not protect the redirection
arrows (<, >) nor do they protect pipes (|). Both are special symbols
for the DOS/CMD command shell and their special meaning is ignored only
if they are placed within "double quotes." Likewise, DOS/Win users must
remember that the percent sign (%) is used to mark DOS/Win environment
variables, so it must be doubled (%%) to yield a single percent sign
visible to awk.

If I am sure that a script will NOT need to be quoted in Unix, DOS, or
CMD, then I normally omit the quote marks. If an example is peculiar to
GNU awk, the command 'gawk' will be used. Please notify me if you find
errors or new commands to add to this list (total length under 65
characters). I usually try to put the shortest script first.

FILE SPACING:

 # double space a file
 awk '1;{print ""}'
 awk 'BEGIN{ORS="\n\n"};1'

 # double space a file which already has blank lines in it. Output file
 # should contain no more than one blank line between lines of text.
 # NOTE: On Unix systems, DOS lines which have only CRLF (\r\n) are
 # often treated as non-blank, and thus 'NF' alone will return TRUE.
 awk 'NF{print $0 "\n"}'

 # triple space a file
 awk '1;{print "\n"}'

NUMBERING AND CALCULATIONS:

 # precede each line by its line number FOR THAT FILE (left alignment).
 # Using a tab (\t) instead of space will preserve margins.
 awk '{print FNR "\t" $0}' files*

 # precede each line by its line number FOR ALL FILES TOGETHER, with tab.
 awk '{print NR "\t" $0}' files*

 # number each line of a file (number on left, right-aligned)
 # Double the percent signs if typing from the DOS command prompt.
 awk '{printf("%5d : %s\n", NR,$0)}'

 # number each line of file, but only print numbers if line is not blank
 # Remember caveats about Unix treatment of \r (mentioned above)
 awk 'NF{$0=++a " :" $0};{print}'
 awk '{print (NF? ++a " :" :"") $0}'

 # count lines (emulates "wc -l")
 awk 'END{print NR}'

 # print the sums of the fields of every line
 awk '{s=0; for (i=1; i<=NF; i++) s=s+$i; print s}'

 # add all fields in all lines and print the sum
 awk '{for (i=1; i<=NF; i++) s=s+$i}; END{print s}'

 # print every line after replacing each field with its absolute value
 awk '{for (i=1; i<=NF; i++) if ($i < 0) $i = -$i; print }'
 awk '{for (i=1; i<=NF; i++) $i = ($i < 0) ? -$i : $i; print }'

 # print the total number of fields ("words") in all lines
 awk '{ total = total + NF }; END {print total}' file

 # print the total number of lines that contain "Beth"
 awk '/Beth/{n++}; END {print n+0}' file

 # print the largest first field and the line that contains it
 # Intended for finding the longest string in field #1
 awk '$1 > max {max=$1; maxline=$0}; END{ print max, maxline}'

 # print the number of fields in each line, followed by the line
 awk '{ print NF ":" $0 } '

 # print the last field of each line
 awk '{ print $NF }'

 # print the last field of the last line
 awk '{ field = $NF }; END{ print field }'

 # print every line with more than 4 fields
 awk 'NF > 4'

 # print every line where the value of the last field is > 4
 awk '$NF > 4'


TEXT CONVERSION AND SUBSTITUTION:

 # IN UNIX ENVIRONMENT: convert DOS newlines (CR/LF) to Unix format
 awk '{sub(/\r$/,"");print}'   # assumes EACH line ends with Ctrl-M

 # IN UNIX ENVIRONMENT: convert Unix newlines (LF) to DOS format
 awk '{sub(/$/,"\r");print}

 # IN DOS ENVIRONMENT: convert Unix newlines (LF) to DOS format
 awk 1

 # IN DOS ENVIRONMENT: convert DOS newlines (CR/LF) to Unix format
 # Cannot be done with DOS versions of awk, other than gawk:
 gawk -v BINMODE="w" '1' infile >outfile

 # Use "tr" instead.
 tr -d \r <infile >outfile            # GNU tr version 1.22 or higher

 # delete leading whitespace (spaces, tabs) from front of each line
 # aligns all text flush left
 awk '{sub(/^[ \t]+/, ""); print}'

 # delete trailing whitespace (spaces, tabs) from end of each line
 awk '{sub(/[ \t]+$/, "");print}'

 # delete BOTH leading and trailing whitespace from each line
 awk '{gsub(/^[ \t]+|[ \t]+$/,"");print}'
 awk '{$1=$1;print}'           # also removes extra space between fields

 # insert 5 blank spaces at beginning of each line (make page offset)
 awk '{sub(/^/, "     ");print}'

 # align all text flush right on a 79-column width
 awk '{printf "%79s\n", $0}' file*

 # center all text on a 79-character width
 awk '{l=length();s=int((79-l)/2); printf "%"(s+l)"s\n",$0}' file*

 # substitute (find and replace) "foo" with "bar" on each line
 awk '{sub(/foo/,"bar");print}'           # replaces only 1st instance
 gawk '{$0=gensub(/foo/,"bar",4);print}'  # replaces only 4th instance
 awk '{gsub(/foo/,"bar");print}'          # replaces ALL instances in a line

 # substitute "foo" with "bar" ONLY for lines which contain "baz"
 awk '/baz/{gsub(/foo/, "bar")};{print}'

 # substitute "foo" with "bar" EXCEPT for lines which contain "baz"
 awk '!/baz/{gsub(/foo/, "bar")};{print}'

 # change "scarlet" or "ruby" or "puce" to "red"
 awk '{gsub(/scarlet|ruby|puce/, "red"); print}'

 # reverse order of lines (emulates "tac")
 awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' file*

 # if a line ends with a backslash, append the next line to it
 # (fails if there are multiple lines ending with backslash...)
 awk '/\\$/ {sub(/\\$/,""); getline t; print $0 t; next}; 1' file*

 # print and sort the login names of all users
 awk -F ":" '{ print $1 | "sort" }' /etc/passwd

 # print the first 2 fields, in opposite order, of every line
 awk '{print $2, $1}' file

 # switch the first 2 fields of every line
 awk '{temp = $1; $1 = $2; $2 = temp}' file

 # print every line, deleting the second field of that line
 awk '{ $2 = ""; print }'

 # print in reverse order the fields of every line
 awk '{for (i=NF; i>0; i--) printf("%s ",i);printf ("\n")}' file

 # remove duplicate, consecutive lines (emulates "uniq")
 awk 'a !~ $0; {a=$0}'

 # remove duplicate, nonconsecutive lines
 awk '! a[$0]++'                     # most concise script
 awk '!($0 in a) {a[$0];print}'      # most efficient script

 # concatenate every 5 lines of input, using a comma separator
 # between fields
 awk 'ORS=NR%5?",":"\n"' file



SELECTIVE PRINTING OF CERTAIN LINES:

 # print first 10 lines of file (emulates behavior of "head")
 awk 'NR < 11'

 # print first line of file (emulates "head -1")
 awk 'NR>1{exit};1'

  # print the last 2 lines of a file (emulates "tail -2")
 awk '{y=x "\n" $0; x=$0};END{print y}'

 # print the last line of a file (emulates "tail -1")
 awk 'END{print}'

 # print only lines which match regular expression (emulates "grep")
 awk '/regex/'

 # print only lines which do NOT match regex (emulates "grep -v")
 awk '!/regex/'

 # print the line immediately before a regex, but not the line
 # containing the regex
 awk '/regex/{print x};{x=$0}'
 awk '/regex/{print (x=="" ? "match on line 1" : x)};{x=$0}'

 # print the line immediately after a regex, but not the line
 # containing the regex
 awk '/regex/{getline;print}'

 # grep for AAA and BBB and CCC (in any order)
 awk '/AAA/; /BBB/; /CCC/'

 # grep for AAA and BBB and CCC (in that order)
 awk '/AAA.*BBB.*CCC/'

 # print only lines of 65 characters or longer
 awk 'length > 64'

 # print only lines of less than 65 characters
 awk 'length < 64'

 # print section of file from regular expression to end of file
 awk '/regex/,0'
 awk '/regex/,EOF'

 # print section of file based on line numbers (lines 8-12, inclusive)
 awk 'NR==8,NR==12'

 # print line number 52
 awk 'NR==52'
 awk 'NR==52 {print;exit}'          # more efficient on large files

 # print section of file between two regular expressions (inclusive)
 awk '/Iowa/,/Montana/'             # case sensitive


SELECTIVE DELETION OF CERTAIN LINES:

 # delete ALL blank lines from a file (same as "grep '.' ")
 awk NF
 awk '/./'


CREDITS AND THANKS:

Special thanks to Peter S. Tillier for helping me with the first release
of this FAQ file.

For additional syntax instructions, including the way to apply editing
commands from a disk file instead of the command line, consult:

"sed & awk, 2nd Edition," by Dale Dougherty and Arnold Robbins
  O'Reilly, 1997
"UNIX Text Processing," by Dale Dougherty and Tim O'Reilly
  Hayden Books, 1987
"Effective awk Programming, 3rd Edition." by Arnold Robbins
  O'Reilly, 2001

To fully exploit the power of awk, one must understand "regular
expressions." For detailed discussion of regular expressions, see
"Mastering Regular Expressions, 2d edition" by Jeffrey Friedl
   (O'Reilly, 2002).

The manual ("man") pages on Unix systems may be helpful (try "man awk",
"man nawk", "man regexp", or the section on regular expressions in "man
ed"), but man pages are notoriously difficult. They are not written to
teach awk use or regexps to first-time users, but as a reference text
for those already acquainted with these tools.

USE OF '\t' IN awk SCRIPTS: For clarity in documentation, we have used
the expression '\t' to indicate a tab character (0x09) in the scripts.
All versions of awk, even the UNIX System 7 version should recognize
the '\t' abbreviation.

#---end of file---










RSYNC

// RSYNC usage

rsync -e ssh atayebali@qafeed1:/usr/local/aolserver/servers/fs/pages/livexml/MLB/MLB_TRANS.XML rysnc_test.xml

rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
  or   rsync [OPTION]... [USER@]HOST:SRC DEST
  or   rsync [OPTION]... SRC [SRC]... DEST
  or   rsync [OPTION]... [USER@]HOST::SRC [DEST]
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
SRC on single-colon remote HOST will be expanded by remote shell
SRC on server remote HOST may contain shell wildcards or multiple
  sources separated by space as long as they have same top-level

copying folders

rsync -e ssh -r atayebali@dev.foxsports.com:/path folder/

All kinds of code

Case Switch
1	#!/bin/bash 
2	 
3	echo "enter something>>" 
4	read var 
5	 
6	case $var in 
7	1 ) echo "1" ;; 
8	2 ) echo "2" ;; 
9	an* ) echo "not" ;; 
10	*tom ) echo "wow" ;; 
11	*) echo "end" 
12	esac 
	view plain | print | ?
#!/bin/bash echo "enter something>>" read var case $var in 1 ) echo "1" ;; 2 ) echo "2" ;; an* ) echo "not" ;; *tom ) echo "wow" ;; *) echo "end" esac

Find Files
1	#!/bin/bash 
2	 
3	find . -name "*" -size 0k > file1.txt 
4	sed -e 's/\.\///g' file1.txt > file2.txt 
5	for line in `cat 0sizenuggets1.txt`; do ls -l $line; done > finalResult.txt 
6	uuencode finalResult.txt finalresult.txt | mail -s "size 0 nuggets" atayebali@foxsports.com 
7	rm file1.txt file2.txt 
	view plain | print | ?
#!/bin/bash find . -name "*" -size 0k > file1.txt sed -e 's/\.\///g' file1.txt > file2.txt for line in `cat 0sizenuggets1.txt`; do ls -l $line; done > finalResult.txt uuencode finalResult.txt finalresult.txt | mail -s "size 0 nuggets" atayebali@foxsports.com rm file1.txt file2.txt

Get Time
1	#!/bin/bash 
2	 
3	wget -O tf http://nist.time.gov/timezone.cgi?Pacific/d/-8 
4	grep '>[0-9][0-9]:[0-9][0-9]'  tf | cut -c63-70 
5	echo "PST" 
6	rm tf 
	view plain | print | ?
#!/bin/bash wget -O tf http://nist.time.gov/timezone.cgi?Pacific/d/-8 grep '>[0-9][0-9]:[0-9][0-9]' tf | cut -c63-70 echo "PST" rm tf

If Statement Example
1	#!/bin/bash 
2	 
3	echo "$1" 
4	 
5	if [ "$1" == hello ]; then 
6	        echo "hello there" 
7	else 
8	        echo "By nice" 
9	fi 
10	 
11	checking for directories 
12	 
13	if [ -d "DB/" ] 
14	 then 
15	        rm -rf DB 
16	        echo "killing DB folder" 
17	 fi 
18	 
19	checking for files 
20	if [ -f "DB/" ] 
21	 then 
22	        rm -rf DB 
23	        echo "killing DB folder" 
24	 fi 
	view plain | print | ?
#!/bin/bash echo "$1" if [ "$1" == hello ]; then echo "hello there" else echo "By nice" fi checking for directories if [ -d "DB/" ] then rm -rf DB echo "killing DB folder" fi checking for files if [ -f "DB/" ] then rm -rf DB echo "killing DB folder" fi

Sed Example
1	#!/bin/bash 
2	 
3	for line in `ls` 
4	do 
5	        sed -e 's/Spring/Regular Season/g' line > tmp 
6	        mv tmp line 
7	        echo -n $line 
8	        grep Regular $line 
9	done 
	view plain | print | ?
#!/bin/bash for line in `ls` do sed -e 's/Spring/Regular Season/g' line > tmp mv tmp line echo -n $line grep Regular $line done

While Example
1	#!/bin/bash 
2	 
3	echo "enter number: " 
4	read var 
5	 
6	while [ $var -le 10 ]; do 
7	echo "var is $var" 
8	var=$((var + 1)) 
9	done 
	view plain | print | ?
#!/bin/bash echo "enter number: " read var while [ $var -le 10 ]; do echo "var is $var" var=$((var + 1)) done

Email Example
1	#!/bin/bash 
2	 
3	function email 
4	{ 
5	echo "this is a test" | mail -s "test" "$1" 
6	} 
7	 
8	if [ "$1" = "" ]; then 
9	echo "nothing in param" 
10	else 
11	echo "sending mail" 
12	 
13	#emailing attachment 
14	#uuencode statsNbaAllStarSim statssim | mail -s "test attachement" atayebali@foxsports.com 
15	#uuencode <filename that will be send> <name for attached file that is sent> | 
16	 
17	#passing the param to function 
18	email $1 
19	fi 
	view plain | print | ?
#!/bin/bash function email { echo "this is a test" | mail -s "test" "$1" } if [ "$1" = "" ]; then echo "nothing in param" else echo "sending mail" #emailing attachment #uuencode statsNbaAllStarSim statssim | mail -s "test attachement" atayebali@foxsports.com #uuencode <filename that will be send> <name for attached file that is sent> | #passing the param to function email $1 fi

Function Example
1	#!/bin/bash 
2	 
3	 
4	function show_uptime 
5	{ 
6	    # Temporary function stub 
7	        uptime 
8	} 
9	 
10	      echo $(show_uptime) 
	view plain | print | ?
#!/bin/bash function show_uptime { # Temporary function stub uptime } echo $(show_uptime)

Command Line Args
1	#!/bin/bash 
2	 
3	 
4	echo "Positional Parameters" 
5	echo '$0 = ' $0 
6	echo '$1 = ' $1 
7	echo '$2 = ' $2 
8	echo '$3 = ' $3 
9	 
10	if [ $1==hello ] ; then 
11	echo "YO MAN" 
12	fi 
	view plain | print | ?
#!/bin/bash echo "Positional Parameters" echo '$0 = ' $0 echo '$1 = ' $1 echo '$2 = ' $2 echo '$3 = ' $3 if [ $1==hello ] ; then echo "YO MAN" fi
<code>
Read User Input

1	#!/bin/bash 
2	 
3	echo "Hello guy what is your name?" 
4	read text 
5	echo "Hello $text" 
6	 
7	echo $1 
8	 
9	echo "How old are you?" 
10	if  read -t 5 response ; then 
11	        echo "sweet" 
12	else 
13	        echo "sour" 
14	 
15	fi 
16	 
17	echo -n "type in secret" 
18	if  read -t 5 response ; then 
19	        echo "sweet" 
20	fi 
	view plain | print | ?
#!/bin/bash echo "Hello guy what is your name?" read text echo "Hello $text" echo $1 echo "How old are you?" if read -t 5 response ; then echo "sweet" else echo "sour" fi echo -n "type in secret" if read -t 5 response ; then echo "sweet" fi

Create Cookie Script
1	#!/bin/bash 
2	 
3	function set_value 
4	{ 
5	       domain=( fox hotmail gmail ) 
6	        echo "${domain[0]}" 
7	 
8	} 
9	 
10	 
11	 
12	for line in `cat description.dat` 
13	        do 
14	 
15	        echo $line 
16	        String=$String$line=$(set_value)\& 
17	 
18	done 
19	 
20	echo -e  "\n\n" 
21	 
22	echo $String 
	view plain | print | ?
#!/bin/bash function set_value { domain=( fox hotmail gmail ) echo "${domain[0]}" } for line in `cat description.dat` do echo $line String=$String$line=$(set_value)\& done echo -e "\n\n" echo $String

Introduce a new line
1	#!/bin/bash 
2	 
3	#Introduce a new line after every '&' in the test.txt file 
4	 
5	sed -e 's/&/\n/g' test.txt 
	view plain | print | ?
#!/bin/bash #Introduce a new line after every '&' in the test.txt file sed -e 's/&/\n/g' test.txt 

Permissions

// Triplets explained
chmod 755

Triplet for u: rwx => 4 + 2 + 1 = 7
Triplet for g: r-x => 4 + 0 + 1 = 5
Tripler for o: r-x => 4 + 0 + 1 = 5
Which makes : 755

AWK & SED Constructs

// Various awk and sed combinations.

awk & Sed construct

View lines  500 to 505
awk 'NR >= 500 && NR <= 505'

remove blank lines
sed -e /^$/d data > filename

remove tabs :

 sed 's/^[ \t]*//' data_raw > data_raw1

search and replace words with escape:

sed -e '/\/id\//d' urls.dat > urlsnostory.dat

awk '{print $3,$2}' emp_names

awk '/AL/ {print $3,$2}' emp_names

what I used
awk '{print $1}' parsed_hrefs >> finalcut

 awk '/href\=\"(.*) / {print $2}' hrefs pinr

awk '{print $NF}' wnba -- Print last line of the code.

-----------------------
Extracting from live xml
awk '/gameId=/{print "/nugget/100_5_" substr($5,9,11)}' ts
 awk '/gamecode/{print "/nugget/100_73_" substr($2,7,10)}' nba
awk '/gamecode/{print "/nugget/100_49_" substr($2,7,9)}' mlb

----------------------------

Extracting gameIds from scores page
awk '/gamecode code=*/ {print substr($2,28,10)}' nbascores

CBK:
awk '/gamecode code=*/ {print substr($2,7,12)}' cbk

Extracting headers
awk '{print $1 " " $2 " " $3 " <img src=\"http://jqa.foxsports.com/fe/img/Writers/header/" $3 ".jpg\"> " "<br>"}' authwids 

Field Seperator
awk -F\\ '{print $6}' logos  [ The \\ escape is added ]

FIND & AWK combination

// File name extraction

substr(field, position, number_of_characters)

 find |  awk '/MLB_LIVE/ {print substr($0, 21,6)}' | sort

in a script (parse and save to tmp file:

for string in $( find |  awk '/MLB_LIVE/ {print substr($0, 21,6)}'  ); do echo $string; done > tmp


Extract from ping
ping qafeed1 | awk ' {print substr($8, 6, 9)}'

FIND

// find by name
find . -name '*3079716*'



// find file extensions
find | cut -d "." -f3 | sort | uniq -c

Watch

// See file updates in real time

watch -d <file or directory>

watch -n 2 ls

watch -d -n 5 cat live.xml

Find Server Type Wget

//Get server type.

wget -d <url>
« Newer Snippets
Older Snippets »
Showing 1-10 of 18 total  RSS