常用的linux命令-- 文本搜索、编辑(grep、sed、awd)

grep

global search regular expression(RE) and print out the line全面搜索正则表达式并把行打印出来 ,搜索内容是文本。

参数说明举例
-a不忽略二进制数据
-A<显示列数i>显示查到数据之后的行数i数据grep -A2 “;$”
-b显示符合范本样式的一行外,显示改行之前的内容
-c计算符合范本样式的列数
-C<显示列数>除了显示内容之外,显示该列前后的内容
-d<进行动作>当查找的内容为目录而非文件时 必须使用该参数
-e<范本样式>指定字符串为查找文件内容的范本样式
-E使用扩展正则表达式
-f<范本文件>指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式
-F将范本样式视为固定字符串的列表
-G将范本样式视为普通的表示法来使用
-h在显示符合范本样式的那一列之前,不标示该列所属的文件名称
-H在显示符合范本样式的那一列之前,标示该列的文件名称
-i忽略字符大小写的差别
-l列出文件内容符合指定的范本样式的文件名称
-L列出文件内容不符合指定的范本样式的文件名称
-n显示符合范本样式的那一列之前,表示出该列的编号
-q不显示任何信息
-r/R此参数的效果和指定“-d recurse”参数相同
-s不显示错误信息
-v翻转查找
-w只显示全字符符合的列
-x只显示全列符合的列
-y参数效果与-i相同
-o只输出文件中匹配到的部分

sed

stream editor文本流编辑,sed是一个非交互式的面向字符流的编辑器。

sed使用参数:

参数说明
-n一般所有数据会输出到终端,现在只有经过一行会出现
-e直接在命令列模式上进行sed的动作编辑
-f直接将sed的动作写入一个文件内
-rsed动作支持的是延伸性正规表示法的语法
-i直接修改该读取的文件内容,而不是输出到终端

动作:

参数说明使用
a新增sed ‘2a Drink tea’
c取代sed ‘2,5c No 2-5 number’
d删除sed ‘2,5d’
i插入sed ‘2i Drink tea’
p列印sed ‘2,5p’
s取代sed ‘s/old/new/p’

其他使用

  • 数据的搜索和显示
    nl testFile | sed ‘/searchStr/p’
  • 数据的搜索并删除
    nl testFile | sed ‘/searchStr/d’
  • 数据搜索并执行命令
    nl testFile | sed ‘/searchStr/{ s/searchStr/replaceStr/;p}’
  • 数据搜索并执行命令并退出
    nl testFile | sed ‘/searchStr/{ s/searchStr/replaceStr/;p;q}’
  • 数据的搜索并替换
    sed ‘s/searchStr/replaceStr/g’
  • 多点编辑
    删除并查找 ,中间命令使用”-e”连接
    nl testFile | sed -e ‘3.5d’ -e ‘s/searchStr/replaceStr/’

awk

与sed相同都是对文件进行逐行处理。
强大的文本分析工具 ,相对于grep的查找 ,sed的编辑 ,awk在堆数据分析并生成报告是,显的尤为强大 ,awk就是把文件逐行读入 ,以空格为默认分隔符,之后将切开的部分在进行各种分析处理。

一般使用

awk -F: ‘{print “hello”}’

添加列名称

last -5 | awk -F: ‘BEGIN {print “name \t,shell”} {print $1} END {print “blue\t,/bin/nosh”}’

sub函数

awk下gsub函数
sub、gsub函数返回的是执行替换或其他匹配操作的次数而不是改行执行结果。这里的sub/gsub函数中传入参数相当于sed命令的字符串端的内容以及写法。

awk内置的一些变量

变量名称说明
ARGC命令行参数个数
ARGV命令行参数排列
ENVIRON支持队列中系统环境变量的使用
FILENAMEawk浏览的文件名
FRN浏览文件的记录数
FS设置输入域分隔符 ,等价于命令行 -F选项
NF浏览记录的域的个数
NR已读的记录数
OFS输出域分隔符
ORS输出记录分隔符
RS控制记录分隔符

0 1。。。。
也可使用printf()进行打印输出,

awk编程:
可以将awk作为可执行文件来编辑 ,执行。
awk文件中的语法:

  • 变量和赋值 :不需要声明 ,有初始值,但仍需初始化
  • 条件语句:与c格式相似 。如:
if (expression) {
    statement;
    statement;
    ... ...
}

if (expression) {
    statement;
} else {
    statement2;
}

if (expression) {
    statement1;
} else if (expression1) {
    statement2;
} else {
    statement3;
}
  • 循环语句
    同样与c语言一致
  • 数组
    下标可以为数字和字符串,同样不需要声明,不需要初始化 ,会存储在hash表中 ,并不会顺序存储。相当于oc字典
    The GNU Awk User’s Guide

cut命令

文件内容查看
:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指 明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如cut fl f2 > f3将把文件fl和几的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中。

-b:仅显示行中指定直接范围的内容; 
-c:仅显示行中指定范围的字符; 
-d:指定字段的分隔符,默认的字段分隔符为“TAB”; 
-f:显示指定字段的内容; 
-n:与“-b”选项连用,不分割多字节字符; 
--complement:补足被选择的字节、字符或字段; 
--out-delimiter=<字段分隔符>:指定输出内容是的字段分割符; 
--help:显示指令的帮助信息; 
--version:显示指令的版本信息。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值