第11章 合并与分割
sort,join,split,unique,cut,paste
1. sort命令
sort命令的一般格式为:
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
下面简要介绍一下 sort的参数:
-c 测试文件是否已经分类。
-m 合并两个分类文件。
-u 删除所有复制行。
-o 存储sort结果的输出文件名。
其他选项有:
-b 使用域进行分类时,忽略第一个空格。
-n 指定分类是域上的数字分类。
-t 域分隔符;用非空格或 tab键分隔域。
-r 对分类次序或比较求逆。
-kn n为域号。使用此域号开始分类。
2. 系统sort命令
3. unique命令
可以认为uniq有点像sort命令中唯一性选项。对,在某种程度上讲正是如此,但两者有一
个重要区别。 sort的唯一性选项去除所有重复行,而uniq命令并不这样做。重复行是什么?在
uniq里意即持续不断重复出现的行,中间不夹杂任何其他文本,
unique命令的选项:
-u 只显示不重复行。
-d 只显示有重复数据行,每种重复行只显示其中一行
-c 打印每一重复行出现次数。
-f n为数字,前 n个域被忽略。
一些系统不识别 -f选项,这时替代使用 -n。
第12章 tr用法
tr常用命令选项:
tr -c-d-s["string1_to_translate_from"]["string2_to_trinputate_to"]file
这里:
-c用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
Input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用
1. 去除重复字符串
tr -s "[a-z]"<oops.txt
2. 删除空行
tr -s "[\012]" <oops.txt
tr -s "[\n]" <oops.txt
sed 's/^$//g' oops.txt
awk '/./ {print $0}' oops.txt
3. 大写转小写
tr "[A-Z]" "[a-z]"<oops.txt
tr "[:upper:]" "[:lower:]" <oops.txt
4. 删除指定字符
tr -cs "[a-z][A-Z]" " <oops.txt
5. 转换控制字符
tr -s "[\015\032\" "\n" <oops.txt
6. 快速转换
如果需要删除文件中的^M,并代之以换行,使用命令:
tr -s "[\015]" "\n" <input.file
或者使用下述命令:
tr -s "[\r]" "[\n]" <input.file
也可以使用
tr -s "\r" "\n" < input.file
另一个一般的Dos到Unix的转换命令是:
tr -s "[\015\032]" "[\012*]" <input.file 将所有的^M和^Z,代之以换行
要删除所有的tab键,代之以空格,使用命令:
tr -s "[\011]" "[\040*]" <input.file
7. 匹配多于一个字符
可以使用[character*n]格式匹配多于一个字符
模式为[0*4],意即匹配至少4个0,替换字符串为星号:
tr "[0*4]" "*" <input.file
2011年8月26日 02时15分07秒
第13章 登录环境设置
登录成功后,系统执行两个环境设置文件,第一个是/etc/profile,第二个是.profile,位
于用户根目录下。
第14章 shell变量
1. 将变量并排就可以使变量的值结合在一起
2. 测试变量是否已经设置
(1)测试变量是否已经被设置或初始化
${varibale:-value}
(2)为变量赋予新值
${varibale:=value}
(3)测试变量是否取值
${varible:?}
${varible:?sorry can't locate the varible files"}
(4)测试变量是否取值,如果未设置,则返回一空串。方法如下:
${variable:+value}
使用下述方法初始化变量为空字符串。
variable=""
$DETINATION=""
3. 特定shell变量
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过 9个
$$ 脚本运行的当前进程 ID号
$! 后台运行的最后一个进程的进程 ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数
$- 显示shell使用的当前选项,与 set命令功能相同
$? 显示最后命令的退出状态。 0表示没有错误,其他任何值表明有错误。
第15章 引号
在脚本中执行变量替换时最容易犯的一个错误就是由于引号错误。在命令行中引号是很重要的。
1. 引用必要性
shell中的引用类型:双引号,单引号,反引号,反斜线
2. 双引号
如果要查询包含空格的字符串, 经常会用到双引号。
使用双引号可引用除字符 $、`、\外的任意字符或字符串。这些特殊字符分别为美元符号,
反引号和反斜线,对shell来说,它们有特殊意义。
3. 单引号
单引号与双引号类似,不同的是 s h e l l会忽略任何引用值。
4.反引号
反引号用于设置系统命令的输出到变量。 s h e l l将反引号中的内容作为一个系统命令,并
执行其内容。使用这种方法可以替换输出为一个变量。
第16章 shell脚本介绍
第17章 条件测试
1. 测试文件状态
-d 目录
-f 正规文件
-L 符号连接
-r 可读
-s 文件长度大于 0、非空
-w 可写
-u 文件有suid位设置
-x 可执行
2. 逻辑操作符
-a 逻辑与,操作符两边均为真,结果为真,否则为假。
-o 逻辑或,操作符两边一边为真,结果为真,否则为假。
! 逻辑否,条件为假,结果为真。
3. 字符串测试
= 两个字符串相等。
!= 两个字符串不等。
-z 空串。
-n 非空串。
4. 数值测试
-eq 数值相等。
-ne 数值不相等。
-gt 第一个数大于第二个数。
-lt 第一个数小于第二个数。
-le 第一个数小于等于第二个数。
-ge 第一个数大于等于第二个数。
第20章 向脚本传递参数
1. shift命令
第21章 创建屏幕输出
第24章 shell嵌入命令
: 空,永远返回为true
. 从当前shell中执行操作
break 退出for、while、until或case语句
cd 改变到当前目录
continue 执行循环的下一步
echo 反馈信息到标准输出
eval 读取参数,执行结果命令
exec 执行命令,但不在当前shell
exit 退出当前shell
export 导出变量,使当前shell可利用它
pwd 显示当前目录
read 从标准输入读取一行文本
readonly 使变量只读
return 退出函数并带有返回值
set 控制各种参数到标准输出的显示
shift 命令行参数向左偏移一个
test 评估条件表达式
times 显示shell运行过程的用户和系统时间
trap 当捕获信号时运行指定命令
ulimit 显示或设置shell资源
umask 显示或设置缺省文件创建模式
unset 从shell内存中删除变量或函数
wait 等待直到子进程运行完毕,报告终止
sort,join,split,unique,cut,paste
1. sort命令
sort命令的一般格式为:
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
下面简要介绍一下 sort的参数:
-c 测试文件是否已经分类。
-m 合并两个分类文件。
-u 删除所有复制行。
-o 存储sort结果的输出文件名。
其他选项有:
-b 使用域进行分类时,忽略第一个空格。
-n 指定分类是域上的数字分类。
-t 域分隔符;用非空格或 tab键分隔域。
-r 对分类次序或比较求逆。
-kn n为域号。使用此域号开始分类。
2. 系统sort命令
3. unique命令
可以认为uniq有点像sort命令中唯一性选项。对,在某种程度上讲正是如此,但两者有一
个重要区别。 sort的唯一性选项去除所有重复行,而uniq命令并不这样做。重复行是什么?在
uniq里意即持续不断重复出现的行,中间不夹杂任何其他文本,
unique命令的选项:
-u 只显示不重复行。
-d 只显示有重复数据行,每种重复行只显示其中一行
-c 打印每一重复行出现次数。
-f n为数字,前 n个域被忽略。
一些系统不识别 -f选项,这时替代使用 -n。
第12章 tr用法
tr常用命令选项:
tr -c-d-s["string1_to_translate_from"]["string2_to_trinputate_to"]file
这里:
-c用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
Input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用
1. 去除重复字符串
tr -s "[a-z]"<oops.txt
2. 删除空行
tr -s "[\012]" <oops.txt
tr -s "[\n]" <oops.txt
sed 's/^$//g' oops.txt
awk '/./ {print $0}' oops.txt
3. 大写转小写
tr "[A-Z]" "[a-z]"<oops.txt
tr "[:upper:]" "[:lower:]" <oops.txt
4. 删除指定字符
tr -cs "[a-z][A-Z]" " <oops.txt
5. 转换控制字符
tr -s "[\015\032\" "\n" <oops.txt
6. 快速转换
如果需要删除文件中的^M,并代之以换行,使用命令:
tr -s "[\015]" "\n" <input.file
或者使用下述命令:
tr -s "[\r]" "[\n]" <input.file
也可以使用
tr -s "\r" "\n" < input.file
另一个一般的Dos到Unix的转换命令是:
tr -s "[\015\032]" "[\012*]" <input.file 将所有的^M和^Z,代之以换行
要删除所有的tab键,代之以空格,使用命令:
tr -s "[\011]" "[\040*]" <input.file
7. 匹配多于一个字符
可以使用[character*n]格式匹配多于一个字符
模式为[0*4],意即匹配至少4个0,替换字符串为星号:
tr "[0*4]" "*" <input.file
2011年8月26日 02时15分07秒
第13章 登录环境设置
登录成功后,系统执行两个环境设置文件,第一个是/etc/profile,第二个是.profile,位
于用户根目录下。
第14章 shell变量
1. 将变量并排就可以使变量的值结合在一起
2. 测试变量是否已经设置
(1)测试变量是否已经被设置或初始化
${varibale:-value}
(2)为变量赋予新值
${varibale:=value}
(3)测试变量是否取值
${varible:?}
${varible:?sorry can't locate the varible files"}
(4)测试变量是否取值,如果未设置,则返回一空串。方法如下:
${variable:+value}
使用下述方法初始化变量为空字符串。
variable=""
$DETINATION=""
3. 特定shell变量
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过 9个
$$ 脚本运行的当前进程 ID号
$! 后台运行的最后一个进程的进程 ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数
$- 显示shell使用的当前选项,与 set命令功能相同
$? 显示最后命令的退出状态。 0表示没有错误,其他任何值表明有错误。
第15章 引号
在脚本中执行变量替换时最容易犯的一个错误就是由于引号错误。在命令行中引号是很重要的。
1. 引用必要性
shell中的引用类型:双引号,单引号,反引号,反斜线
2. 双引号
如果要查询包含空格的字符串, 经常会用到双引号。
使用双引号可引用除字符 $、`、\外的任意字符或字符串。这些特殊字符分别为美元符号,
反引号和反斜线,对shell来说,它们有特殊意义。
3. 单引号
单引号与双引号类似,不同的是 s h e l l会忽略任何引用值。
4.反引号
反引号用于设置系统命令的输出到变量。 s h e l l将反引号中的内容作为一个系统命令,并
执行其内容。使用这种方法可以替换输出为一个变量。
第16章 shell脚本介绍
第17章 条件测试
1. 测试文件状态
-d 目录
-f 正规文件
-L 符号连接
-r 可读
-s 文件长度大于 0、非空
-w 可写
-u 文件有suid位设置
-x 可执行
2. 逻辑操作符
-a 逻辑与,操作符两边均为真,结果为真,否则为假。
-o 逻辑或,操作符两边一边为真,结果为真,否则为假。
! 逻辑否,条件为假,结果为真。
3. 字符串测试
= 两个字符串相等。
!= 两个字符串不等。
-z 空串。
-n 非空串。
4. 数值测试
-eq 数值相等。
-ne 数值不相等。
-gt 第一个数大于第二个数。
-lt 第一个数小于第二个数。
-le 第一个数小于等于第二个数。
-ge 第一个数大于等于第二个数。
第20章 向脚本传递参数
1. shift命令
第21章 创建屏幕输出
第24章 shell嵌入命令
: 空,永远返回为true
. 从当前shell中执行操作
break 退出for、while、until或case语句
cd 改变到当前目录
continue 执行循环的下一步
echo 反馈信息到标准输出
eval 读取参数,执行结果命令
exec 执行命令,但不在当前shell
exit 退出当前shell
export 导出变量,使当前shell可利用它
pwd 显示当前目录
read 从标准输入读取一行文本
readonly 使变量只读
return 退出函数并带有返回值
set 控制各种参数到标准输出的显示
shift 命令行参数向左偏移一个
test 评估条件表达式
times 显示shell运行过程的用户和系统时间
trap 当捕获信号时运行指定命令
ulimit 显示或设置shell资源
umask 显示或设置缺省文件创建模式
unset 从shell内存中删除变量或函数
wait 等待直到子进程运行完毕,报告终止