1,echo –n  不换行

     echo –e 使后面的特殊字符生效

\a 警示 alert

\b 退格 backspace

\c 忽略最后的换行

\f 清屏Formfeed

\n 换行Newline

\r 回车

\t 水平制表

\v 垂直制表

\\反斜杠

     printf 输出不换行 如需要 +\n

        格式: printf format-string [arguments…]

    tr [ options ] source-char-list [replace-char-list]

 

    tr –d  ‘\r’< dos-file.txt > Uinix.txt

在方括号表达式内所有的meta字符将失去特殊意义。

1. 访问Shell脚本的参数  positional parameters 

shell脚本的命令行参数

2,sh错误追踪

shell –x

3.国际化与本地化

internationalization 缩写为 i18n

        localization  l10n

第三章:查找和替换

      正则表达式:元字符在BRE与ERE中的意义

字符     BRE/ERE

\          

*

^

$

[]

字符   BRE

\{n,m\}

\(\)

\n

 

字符 ERE

{n,m}

+

?

|

()

 

POSIX 方括号表达式

[:与:] 字符集

[.与.] 排序符号

[=与=]等价字符集

正则表达式运算符

\w  匹配任何单词组成字符

\W 匹配任何非字符

\b  等同于\<  \>

\B 匹配两个单词组成的空字符

sed

sed ‘s;/home/derectory/;/home/lt/;’

sed ‘s/\/home\/derectory\//home/lt\//’

sed ‘s;\(/home\)/derctory/;\1/lt;’

sed –n ‘/some/p’

匹配特定行

sed –n ‘10,42p’ /etc/passwd

sed ‘/foo/,/bar/ s/baz/quux/g’/etc/passwd

sed ‘/used/!s/new/used/g’ /etc/passwd

sed -n '\/ibuler/ s;IBULER;Ibuler;p' /etc/passwd

echo “Tolstoy is world “|sed “s/Tolstoy/John/”

echo “Tolstoy is world “ |sed  “s/To*o/John/”

echo “Tolstoy is world “|sed “s/To[[:alpha:]]*/John/”

echo  abc|sed ‘s/b*/1/’   ==== 1abc

echo ‘s/b*/1/g’ ====1a1c1

awk

awk ‘pattern { action }’ [file]

awk ‘{ print $1 }’

awk ‘{ print $2,$5 }’

awk ‘{ print $1,$NF }’

awk ‘NF>0 { print $0 }’

awk –F: ‘{ print $1,$5 }’ /etc/passwd

awk –F:  -v ‘OFS=**’ ‘{ print $1,$5 }’ /etc/passwd

awk –F: ‘{ printf “ user %s is really %s \n”,$1,$5 }’ /etc/passwd

awk –F:' ‘{print  “user,$1,”is really “,$5}’ /etc/passwd

BINGIN 

END
awk ‘BEGIN {FS=”:” ; OFS=”***” }

{ print $1,$2} ‘/etc/passwd

sort

-k 后如果指定字段编号则排序键从该字段开始一直持续到记录的结尾(而非字段结尾)

-k 后如果跟的是一对逗号隔开的数字,则排序键将由第一个字段值处开始,结束于第二个字段结尾

使用点号字符位置,则比较的开始(一对数字的第一个)或结束一对数字的第二个

POSIX内置的shell变量

# 目前进程的参数个数

@传递给当前进程的命令行参数,置于双括号内,展开呢为个别的参数

*当前进程的命令行参数,置于双引号内,展开则为一个字符串

-引用时给予shell的选项

? 前一个命令的退出状态

$shell进程的编号

0 shell程序的名称

!最近一个后台命令的进程编号

 

set

-C 停用 >

-f 停用通配符展开

-x 执行前先展开命令

正则表达式匹配

非打印字符

\f 匹配换页符

\n匹配换行符

\r匹配回车符

\s任何空白字符 包括空格制表符换页符等[[:space:]]

\S任何非空白字符 [^[:space:]]

\t匹配一个制表符

\v匹配一个垂直制表符

 

特殊字符

$匹配输入字符串的结尾位置

()标记一个子表达式的开始于结束位置,bre中用\(\),ere中不用,但意义已不同

*匹配零次或多次

+匹配前面表达式一次或多次,bre中用\+,ere则直接用

.匹配换行符\n之外的任何单字符

?匹配前面子表达式零次或一次,或指明为非贪婪模式

\将下一个字符标记为特殊字符或原意字符或向后引用

^匹配输入字符串开始的位置,在方括号则为非

|指明两项之中的选择,ere中用

{标记限定符表达式开始rhcerhca

限定符

*匹配前面表达式零次或一次

+匹配一次或多次

?匹配前表达式零次或一次

{n}匹配前表达式n次,在bre中请用\{n\}

{n,}匹配大于n次的字符 bre中用\{n\}

{n,m}匹配至少n次至多m次的字符串

^匹配字符串开始

$匹配字符结尾

\b匹配单词开始于结束

\B非单词编辑  ‘er\B’能匹配verb但不能匹配never

\d匹配一个数字字符

\D匹配一个