大数据shell基础

一、常用shell命令
1、管道命令:|
命令1 | 命令2 命令1的输入作为命令2的输入
大数据shell基础_第1张图片

2、抓取命令 grep命令 (可以使用正则表达式来过滤)
大数据shell基础_第2张图片

3、查找命令 find命令
选项参数:-type, -name, -size, -perm…
在这里插入图片描述
如果上面这个不行可以在*.log上加引号
大数据shell基础_第3张图片

4、流编辑器 sed命令
sed (stream editor)是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

命令格式:sed [option] “[action]” [filename]

动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!

预备工作:创建demo.txt
大数据shell基础_第4张图片
创建多行文本使用 -e 识别字符串中的转义字符
当然也可用vim demo.txt的方式来创建。

现在修改一下demo.txt的内容:
大数据shell基础_第5张图片

(1)替换操作(substitute)
任务:将所有行的第一个hello替换成HELLO。
大数据shell基础_第6张图片
注意:输出内容是替换了的,但是原文件并没有改变。

任务:将第2行到第3行的第2个hello替换成HELLO。
大数据shell基础_第7张图片

任务:将全部的hello替换成HELLO
大数据shell基础_第8张图片

任务:将第2行的hello全部替换成HELLO。
大数据shell基础_第9张图片

任务:将全部的hello替换成HELLO,之后生成新文件demo1.txt。
大数据shell基础_第10张图片

任务:将全部的hello替换成hi,要求修改原文件。
大数据shell基础_第11张图片

(2)插入操作
i: insert 在当前行之前插入
a: append 在当前行之后插入
除非加 -i 不然输出内容是替换了的,但是原文件并没有改变。

任务:在第2行之前插入一行新内容“I love Linux”
大数据shell基础_第12张图片
任务:在第2行之后插入一行新内容“Linux is interesting, and I love it.”
大数据shell基础_第13张图片

(3)删除操作(d: delete)
任务:删除全部行
在这里插入图片描述

任务:删除第2行
在这里插入图片描述

任务:删除第2行到第3行
在这里插入图片描述

任务:删除包含scala字符串的匹配行
[root@localhost ~]# sed “/scala/g” demo.txt
大数据shell基础_第14张图片
这个方法有一个空白行,所以采用下面这个方法
大数据shell基础_第15张图片

5、tail命令
(1)显示末尾若干行
tail -n filename
任务:显示install.log最后四行内容
大数据shell基础_第16张图片

(2)显示文件修改行
tail -F filename 显示文件修改的内容。

:set nu
大数据shell基础_第17张图片
set nonu取消行号
大数据shell基础_第18张图片

在实际应用中,日志文件在不断修改,如何显示修改的内容呢?只需要参数-F。
大数据shell基础_第19张图片

利用cat -n命令
在这里插入图片描述

利用wc -l (lines)统计文件行数(-c 统计字符数、-w 统计单词数)
大数据shell基础_第20张图片

我们不妨看看-c和-w的结果。
大数据shell基础_第21张图片

你可能感兴趣的:(大数据shell基础)