grep
参数 | 说明 |
---|---|
-b | 将二进制文件作为文本进行匹配 |
-c | 统计与模式匹配的数量 |
-i | 忽略大小写 |
-n | 显示匹配所在行的行号 |
-v | 反选,打印不匹配的内容 |
-r | 递归查找 |
- 匹配所有的字母:grep '[[:alpha:]],大写grep '[[:upper:]]',小写grep '[[:lower:]]'
- 匹配所有的数字:grep '[[:digit:]]',grep '[0-9]'
sed流编辑器
参数 | 说明 |
---|---|
-n | 只打印受影响的行,默认全部 |
-f filename | 指定执行filename文件中的命令 |
-r | 使用正则表达式 |
-i | 直接修改文件的内容 |
sed格式:sed 参数 命令
n1,n2表示从n1行到n2行执行命令
n1,~表示从n1开始全部行
命令 | 说明 |
---|---|
s | 行内替换 |
c | 整行替换 |
a | 插入到指定行后面 |
i | 插入到指定行前面 |
p | 打印指定行 |
d | 删除指定行 |
awk文本处理语言
#建立一个test文件,以下是内容
I like linux
www.baidu.com
含义 | 样例 | 样例解析 | |
---|---|---|---|
{action} | awk要执行的行为 | awk '{print}' test | 打印test内的内容 |
NR | 表示当前处理的行数 | awk '{ if (NR==1) { print $1 "\n" $2 "\n" $3 } else { print }}' test | 表示处理到第一行的时候 |
NF | 表示当前处理的字段数 | ||
OFS | 表示输出时候的字段分隔符,默认为空格 | awk '{ if (NR==1) {OFS = "\n"; print $1, $2, $3} else { print }}' test | OFS以“\n”作为输出时候的分隔 |
ORS | 表示输出时候的记录分隔符,默认为\n | ||
$N | 表示引用相应字段,$0表示整行 | 两个动作写在同一行的话需要用;分隔开 | |
-F | 预先指定字段分隔符 | awk -F'.' '{print $1,$2}' test | 表示以 . 为分隔符 |
-v | 预先定义awk的变量 | -v var=value | |
BEGIN | 在其他行为前执行 | awk 'BEGIN{ FS="." OFS="\t" }{ if(NR==2){print $1,$2,$3}}' test | 输入的文本以 . 分割,输出的结果以\t分隔输出 |
简单的文本处理
命令 | 参数 | 解析 |
tr | -d ‘olh’ | 删除文本中所有的o,l,h |
-s ‘l’ | 对文本的字符串‘l’去重,比如hello,去重结果为helo | |
col | -x | cat无法将tab键转为空格,加上col -x即可换为空格 |
join | join file1 file2 | 将file1和file2包含相同内容的那行合并 |
paste | -d | 指定分隔符,默认为Tab |
-s | 每个文件为一行 |