开发语言之shell初接触二

来源:互联网 发布:ubuntu wiki 编辑:程序博客网 时间:2024/06/06 19:07
grep 匹配文本 ,通常作为管道的第一步
grep   -i 匹配时忽略字母大小写差异


sed小结
1.在一个或多个文件上自动实现编辑操作。
2.简化对多个文件执行相同的编辑处理工作。
3.编写转换程序。

awk功能:
1.将文本文件看做由记录和字段组成的文本数据库。
2.使用变量操作数据库
3.使用算术和字符串操作符
4.使用普通的程序设计结构,例如循环和条件
5.生成格式化报告
6.定义函数
7.从脚本中执行UNIX命令
8.处理UNIX命令的结果
9.更加巧妙的处理命令行的参数
10.更容易地处理多个输入流

sed和awk都可以从标准输入中取得输入并将输出发送到标准输出

sed和awk一个共用的选项-f

sed和awk中每个指令包括两个部分:模式和过程。
模式是由斜杠(\)分隔的正则表达式。
过程指定一个或多个将被执行的动作。

sed过程由类似于行编辑器中使用的那些编辑命令组成。
awk过程由程序设计语句和函数组成。过程必须用大括号括起。

调用sed两种方法:
1.在命令行上指定编辑命令
2.将它们放到一个文件中并提供这个文件的名字
sed [-e] 'instruction' file
在命令行上给出多个指令时需要用-e选项

$ sed 's/aa/bb/' test
将list文件中aa替换成bb

sed 's/aa bb/bb aa/' test
将aa bb 变成bb aa

sed多重指令的三种方法:
1.分号分隔
sed 's/aa/bb/;s/cc/dd/' test
2.每个指令前-e
sed -e 's/aa/bb/' -e's/cc/dd/' test
3.分行
$sed '
> s/aa/bb/
> s/cc/dd/' test

sed -f scriptfile file
-f 指定命令行上的脚本文件的名字

保存输出
sed -f scriptfile file > newfile

sed -n -e 's/aa/bb/p' test
-n阻止自动输出,每个要生成输出的指令都必须包含打印命令p

sed     -e 编辑随后的指令
    -f 跟随脚本中的文件名
    -n 阻止输入行的自动输出
0 0
原创粉丝点击