shell脚本基础01

上一篇 / 下一篇  2011-07-28 21:28:54 / 个人分类:linux&shell

shell脚本的组成元素
系统命令
文本处理工具(sort、greap、sed、awk......)
变量
条件判断
循环结构
函数

显示文本 echo [选项] 文本
-n 不要自动换行
-e 解析转义符
a 发出警告音
c 最后不要加上换行符
f 换行
r 回车


sort
-o 输出文件
-d 按字典顺序排序 a-z
-n 按数字大小输出 0-9
-r 逆序输出 z-a 9-0
-k 指定分类是域上的数字分类
-t 域分割符 用非空格或tab键分割域
举例
(1)正向顺序与逆向顺序排列
[root@CentOS5 ~]# sort  aa
Lily    1975.10.10      美国            89
Lucy    1975.10.10      美国            85
Tom     1985.08.07      浙江杭州        90

以上按第1列(域)的正向顺序(即字母的顺序)打印。注:每个字符均比较过去。

[root@CentOS5 ~]# sort -r aa
Tom     1985.08.07      浙江杭州        90
Lucy    1975.10.10      美国            85
Lily    1975.10.10      美国            89

以上是以第1列的逆向顺序。其中参数-r就实现此功能。

(2)分类以去除重复行
[root@CentOS5 ~]# cat cc
aa
aa
bb
bb
cc
cc
[root@CentOS5 ~]# sort -u cc
aa
bb
cc

可以用参数-u实现。可以与wc -l结合使用,如下:
[root@CentOS5 ~]# sort -u cc |wc -l
3

(3)指定某个域进行排序,如下操作:
[root@CentOS5 ~]# cat dd
12      22
11      11
13      44
15      33
[root@CentOS5 ~]# sort -k2 dd
11      11
12      22
15      33
13      44

(4)在多个域的排序方法,如下:
[root@CentOS5 ~]# sort -k2 -k1 dd
11:11
11:12
12:22
13:44
15:33

[root@CentOS5 ~]# sort -r -k2 -k1 dd
15:33
13:44
12:22
11:12
11:11


[root@CentOS5 ~]# cat /etc/passwd|sort -k1|awk -F":" '{print $1}'
adm
ais
apache
.
.
.

首先,用cat打印/etc/passwd,通过|管道输出,然后用sort按第1域正向排序,然后用awk只打印第1域

wc [选项] 文件
说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。
该命令各选项含义如下:
- c 统计字节数。
- l 统计行数。
- w 统计字数。
这些选项可以组合使用。
输出列的顺序和数目不受选项的顺序和数目的影响。总是按下述顺序显示并且每项最多一列。
行数、字数、字节数、文件名
如果命令行中没有文件名,则输出中不出现文件名。
例如:
$ wc - lcw file1 file2
4 33 file1
7 52 file2
11 11 85 total
省略任选项-lcw,wc命令的执行结果与上面一样。

diff [选项] 文件/目录 文件/目录
diff /etc/passwd /etc/passwd.bak
-q 仅显示有无差异,不显示详细的信息
-c 显示全部内文,并标出不同之处。
-b 不检查空格字符的不同
-B 不检查空白行
-r 比较子目录中的文件。


TAG:

 

评分:0

我来说两句

日历

« 2024-04-15  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 1065
  • 日志数: 1
  • 建立时间: 2010-11-09
  • 更新时间: 2011-07-28

RSS订阅

Open Toolbar