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

来源:互联网 发布:淘宝上的息肌丸 编辑:程序博客网 时间:2024/05/17 15:38

    • grep
    • sed
      • sed使用参数
      • 其他使用
    • awk
      • 一般使用
      • 添加列名称
      • sub函数
      • awk内置的一些变量
    • cut命令

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的动作写入一个文件内 -r sed动作支持的是延伸性正规表示法的语法 -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 支持队列中系统环境变量的使用 FILENAME awk浏览的文件名 FRN 浏览文件的记录数 FS 设置输入域分隔符 ,等价于命令行 -F选项 NF 浏览记录的域的个数 NR 已读的记录数 OFS 输出域分隔符 ORS 输出记录分隔符 RS 控制记录分隔符

01。。。。
也可使用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:显示指令的版本信息。
原创粉丝点击