基本操作

sed与awk的共同点:

*它们都使用相似的语法來调用

*它们都是面向字符流的,都是从文本文件中一次一行的读取输入,并将输出直接送到标准输出端

*它们都使用正则表达式进行模式匹配

*它们都允许用户在脚本中指定指令


sed与awk的命令行语法大致相同:

  command [options] script filename

sed和awk都可以从标准输入中取得输入并将输出发送到标准输出。如果指定文件名filename,输入就来自那个文件。


sed和awk一个共同的选项是-f选项,这个选项允许指定脚本文件的名字。

sed -f scriptfile inputfile

在sed和awk中,每个指令都包括两个部分:模式和过程

模式是由斜杠(/)分隔的正则表达式。

过程指定一个或多个将被执行的动作。


使用sed

指定简单的指令:

sed [-e] 'instruction' file
只有在命令行上给出多个指令时才需要用-e选项。它告诉sed将下一参数解释为指令。

并不是在任何情况下都需要将指令用单引号包围起来,但应该养成这个习惯


有3种方式可以指定命令行上的多重指令:

1.用分号分隔指令

sed 's/ MA/, Massachusetts/; s/ PA/, Pennsylvania/' list
2.在每个指令前放置-e

sed -e 's/ MA/, Massachusetts/' -e 's/ PA/, Pennsylvania/' list
3.使用Bourne shell的分行指令功能

$sed '
>s/ MA/, Massachusetts/
>s/ Pa/, Pennsylvania/
>s/ CA/, California/' list

阻止输入行的自动显示

sed的默认操作是输出每个输入行。

-n:可以阻止自动输出。当指定该选项是,每个要生成输出的指令都必须包含答应命令p。如:

sed -n -e 's/MA/Massachusetts/p' list

表:sed的命令行选项

选项描述
-e编辑随后的指令
-f跟随脚本中的文件名
-n阻止输入行的自动输出


使用awk

命令行语法是:

awk 'instructions' files
用脚本文件调用awk的语法:

awk -f script files
表:awk的命令行选项

-f跟随脚本文件的文件名
-F改变字段分隔符
-v跟随var=value


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值