ITPub博客

首页 > > > linux数据处理

linux数据处理

作者:longmanma 时间:2019-12-09 10:36:08 0 删除 编辑

数据处理

数据检索

数据排序

数据去重

重定向

常和管道协作的命令 – grep

grep:用于搜索模式参数指定的内容,并将匹配的行输出到屏幕或者重定向文件中,常和管道协作的命令 – grep。

还有egrep和fgrep两个命令。

egrep可以使用扩展的正则表达式

fgrep没有元字符与普通字符的区别

grep egrep用别名加了--color之后才好理解。

##grep命令

grep, egrep, fgrep - print lines matching a pattern

命令语法

grep [OPTIONS] PATTERN [FILE...]

命令选项

-r 递归

-v 反取

-i 忽略大小写

-n 显示行号

-c 计数

-w 匹配一个词

-l 只给出匹配的文件名

-L 列出不匹配的文件名

-o 只列出匹配的内容

-E 支持扩展的正则表达式

-q 在标准输出中不输出任何内容,即静默模式

PATTERN

匹配字符串

example

对文件夹的操作

grep -r "root" /etc 递归检索/etc下所有文件中包含root的文件

grep -l -r "root" /etc 列出包含 root字符串的文件名

grep -L -r "root" /etc 列出不包含root字符串的文件名

对文件的操作

grep "root" /etc/passwd 找出文件中包含字符串root的行

grep -v "root" /etc/passwd 找出文件中不包含字符串root的行

grep -n "root" /etc/passwd 找出文件中包含字符串root的行,并显示行号

grep -c "root" /etc/passwd 统计文件中包含字符串root的行数

grep -w "root" /etc/passwd 匹配的字符串必须是一个完整单词 而不是包含

grep -o "root" /etc/passwd 只显示匹配的内容

grep -q "root" /etc/passwd 只匹配不输出

可以使用$?来监测结果,一般脚本中使用较多

[root@www ~]# grep -q "root" /etc/passwd

[root@www ~]# echo $?

[root@www ~]# grep -q "root1" /etc/passwd

[root@www ~]# echo $?

##管道: |

上一个命令的输出作为下一个命令的输入

cat /etc/passwd | head -2

##常和管道协作的命令 - sort

sort - sort lines of text files

-n 按数字排序

-r 反序排序

-o 结果输出到文件

-t 分隔符 sort -n -t: -k3 /etc/passwd

-k 关键字 (按照指定列来排序)

example:

ps -a -o comm,vsz,rss,pmem |sort -nr -k 3

##常和管道协作的命令 - uniq

uniq - report or omit repeated lines

-c 每行出现的次数

-d 仅显示重复行

-u 仅显示不重复行

-i 忽略大小写

-f N 跳过前面N个部分 (空格分开)

-s N 跳过前面N个字符 (一般字符)

##重定向

> 重定向输入

>> 重定向追加

< 重定向输出

<< 重定向追加输出

linux中使用

0 代表标准输入 stdin

1 代表标准输出 stdout

2 代表标准错误输出 stderr

把输入输出和重定向混合使用。

2>把标准错误流重定向到文件中。

2>&1或>&把标准错误流与标准输出流结合在一起。

2>>是什么情况?

2>&1的意思是,“把标准错误传送到标准输出要去的任何位置”。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2730/viewspace-3122716/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Sqoop安装及操作
请登录后发表评论 登录
全部评论

注册时间:2019-12-18

  • 博文量
    492
  • 访问量
    11996