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 | 控制记录分隔符 |
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:显示指令的版本信息。