Helpful Sed one-liners commands.
REM Delete empty line sed -e "/^$/d" 1x.txt > 2x.txt REM Delete all newline.( Concatenate each line of 1x.txt into 1 line of string ) sed ":a;N;$!ba;s/\n//g" 1x.txt > 2x.txt REM http://sed.sourceforge.net/sedfaq5.html#s5.10 REM Print line without 'code' sed -n "/code/!p" 1x > 2x.txt REM In bash shell, use single quote. REM Delete line 2 up to line 10 inclusively. sed -e "2,10d" 1x.txt > 2x.txt REM Skip the 3rd line(Replace 'a' with 'b' for all lines except the 3rd line). sed -e "3n; s/a/b/g" 1x.txt > 2x.txt REM Insert LINE at line 3. REM If no number before i is defined, then sed will insert LINE before every line in 1x.txt sed -i "3i\LINE" 1x.txt REM Append WORD at the end of file. sed -i "$a\WORD" 1x.txt REM Use semi-colon(;) as OR operator. REM Print line containing expression1 or expression2 or etc sed -n "/exp1/p; /exp2/p" 1x.txt REM Number each line of a file sed = filename.txt | sed "N;s/\n/\t:/" > 1x.txt REM Replace empty lines with previous non-empty line. sed -e "/[^ ]/{h}" -e g input.txt REM http://www.computing.net/unix/wwwboard/forum/7768.html REM Copy pattern found multiple times using ampersand(&) ECHO 123 abc | sed "s/123/& | & | &/" REM Copy pattern found multiple times using parentheses. ECHO 123 abc | sed -e "s/\(123\)\(.*\)/ \1 \1 \2 \1 \2 /" REM Process every 4th line. sed -e "0~4s/$/ReplaceString/g" input.txt > output.txt
Classes
[[:alnum:]] - [A-Za-z0-9] Alphanumeric characters
[[:alpha:]] - [A-Za-z] Alphabetic characters
[[:blank:]] - [ \x09] Space or tab characters only
[[:cntrl:]] - [\x00-\x19\x7F] Control characters
[[:digit:]] - [0-9] Numeric characters
[[:graph:]] - [!-~] Printable and visible characters
[[:lower:]] - [a-z] Lower-case alphabetic characters
[[:print:]] - [ -~] Printable (non-Control) characters
[[:punct:]] - [!-/:-@[-`{-~] Punctuation characters
[[:space:]] - [ \t\v\f] All whitespace chars
[[:upper:]] - [A-Z] Upper-case alphabetic characters
[[:xdigit:]] - [0-9a-fA-F] Hexadecimal digit characters
http://www.student.northpark.edu/pemente/sed/sedfaq3.htmlREM Print only if there are 3 consecutive hexadecimal. echo a1f | sed -n "/[[:xdigit:]]\{3\}/p"
Regular Expression
# (In bash) Remove everything that is not > echo 'a >bc>d e' | sed -e 's/[^>]//g' # Remove tags(<..>) echo '<h1>Remove</h1> <em>html/xml</em> tags.' | sed -e 's/<[^>]*>//g'
# Replace a or f with X. echo 'abcdefghi' | sed -e 's/[af]/X/g'
# Replace characters ranging from c to f inclusively with X. echo 'abcdefghi' | sed -e 's/[c-f]/X/g'
# Replace ccc with X. Don't forget to put backslash before curly brackets. echo 'abccdecccfghi' | sed -e 's/c\{3\}/X/g'
# Replace any characters(.) between a and ; inclusively with X. echo 'ab1$2c3+d;efghi' | sed -e 's/a.*;/X/g'
http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_03
References
IF and ELSE
One liners
Commands explained
http://www.gentoo.org/doc/en/articles/l-sed2.xml
http://www.grymoire.com/Unix/Sed.html#uh-0