·seq   sequence  #序列
·sed   stream editor  #(三剑客老二)流编辑器。实现对文件的增删改替换查。
        -n #取消默认输出。sed -n '20,30'p ett.txt  这里  p 表示打印
        一、sed命令:
        d  删除当前模式空间所有的内容。
        g  与s联合使用时,表示对当前行全局匹配替换。
        p  打印匹配行。
        s  常说的查找并替换,用一个字符串替换成另一个。
        二、sed选项:
        -e  #允许多项编辑
        -f  #后面接sed脚本的文件名
        -n  #取消默认输出
        -i  #修改文件内容
       
·awk   (三剑客老大)过滤,输出内容,自成一门语言。 NR:行号

特殊符号:

·=       #linux里   一个=号是赋值的意思,俩个==号才是等于的意思

·有能力的人,给出三种以上的方法,才叫有方法!

问题十一:只查看ett.txt文件(100行)内第20到第30行的内容(企业常见面试题)。
解答:sequence==seq序列

方法一: (这方法很low)
head [-n] [文件名] :后面直接跟文件名,显示文件前十行。-n表示显示文件前n行。
tail [-nf] [文件名] :后面直接跟文件名,显示文件后十行。-n表示显示文件后n行。

[root@localhost /]# head -30 ett.txt|tail -11
20
21
22
23
24
25
26
27
28
29
30

方法二:(*必会)
·sed -n '20,30'p ett.txt    #这个命令更有效,要记住!
        -n #取消默认输出。
         p  #表示打印
[root@localhost /]# sed -n '20,30'p ett.txt   (用引号‘’保险,规范)
20
21
22
23
24
25
26
27
28
29
30
[root@localhost /]# sed -n '$'p ett.txt   ($符号是结尾的意思)
100

方法三:锦上添花:
[root@localhost /]# awk '19<NR && NR<31' ett.txt  (NR行号;&&并且,俩边同时成立)
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# awk '19<NR&&NR<31' ett.txt  (&&俩边没空格也行)
20
21
22
23
24
25
26
27
28
29
30

方法四:锦上添花
[root@localhost /]# awk '{if(NR<31 && NR>19) printf $0"\n"}' ett.txt
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# awk 'NR==31' ett.txt   (直接定在第31行)
31

方法五:
[root@localhost /]# grep 20 -A 10 ett.txt  (匹配第20行,显示改行之后的10行)
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# grep 30 -B 10 ett.txt   (匹配第30行,显示改行之前的10行)
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# grep 25 -C 5 ett.txt   (匹配第25行,然后再显示改行前后各5行)
20
21
22
23
24
25
26
27
28
29
30

#Context control:
-A  #除了显示匹配的一行之外,并显示该行之后的num行。
-B  #除了显示匹配的一行之外,并显示该行之前的num行。
-C  #除了显示匹配的一行之外,并显示该行之前后各num行。

此篇命令记录:

[root@localhost /]# seq 1 10
1
2
3
4
5
6
7
8
9
10
[root@localhost /]# seq 1 2 10
1
3
5
7
9
[root@localhost /]# seq 1 3 10
1
4
7
10
[root@localhost /]# seq 100 >ett.txt  (这代表创建了一个有1-100,100行数字的文件)
[root@localhost /]# cat ett.txt
1
。。。(这里我手动省略98行)
100

[root@localhost /]# head -30 ett.txt|tail -11
20
21
22
23
24
25
26
27
28
29
30
[root@localhost /]# sed -n '20,30'p ett.txt
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# awk '19<NR&&NR<31' ett.txt  (&&俩边没空格也行)
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# awk '{if(NR<31 && NR>19) printf $0"\n"}' ett.txt
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# awk 'NR==31' ett.txt
31

[root@localhost /]# grep 20 -A 10 ett.txt  (匹配第20行,显示改行之后的10行)
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# grep 30 -B 10 ett.txt   (匹配第30行,显示改行之前的10行)
20
21
22
23
24
25
26
27
28
29
30

[root@localhost /]# grep 25 -C 5 ett.txt   (匹配第25行,然后再显示改行前后各5行)
20
21
22
23
24
25
26
27
28
29
30

#Context control:
-A  #除了显示匹配的一行之外,并显示该行之后的num行。
-B  #除了显示匹配的一行之外,并显示该行之前的num行。
-C  #除了显示匹配的一行之外,并显示该行之前后各num行。

NO7 利用三剑客awk-grep-sed-head-tail等7种方法实践的更多相关文章

  1. 利用matlab求图像均值和方差的几种方法

    一.求均值 % 求一副灰度图像的均值 close all; clear; clc; i=imread('d:/lena.jpg'); %载入真彩色图像 i=rgb2gray(i); %转换为灰度图 i ...

  2. awk grep sed cut学习

    awk学习网站 grep sed cut

  3. 利用JQuery实现全选和反选的几种方法

    前面介绍了利用JavaScript实现全选功能,其中也有要注意的几点,现在讲解下在JQuery怎么实现全选和反选,下面提供了两种方法实现. 如图:要实现的效果是点击全选框全部选中,再点击全部不选中 方 ...

  4. 利用Python进行图片发送与接收的两种方法---包含客户端和服务器端代码

    第一种方法 opencv.requests.flask 此方法比较耗费时间 600毫秒左右 客户端代码 #coding:utf-8 import cv2 import json import requ ...

  5. linux 三剑客命令(grep,sed ,awk)

    grep 命令 :强大的文本’搜索’工具    1.grep   -n   'word'  file_name 在file_name文件中找到word所在的所有行并显示.-n 为显示行号.     2 ...

  6. awk,grep,sed文本格式化处理

    一.awk取列 [root@web01 ~]# cat /etc/passwd|awk -F ':' '{print $1"\t\t"$7}' ###-F指定分隔符 root /b ...

  7. 打印第二列为oldboy的第一列内容(awk,grep,sed用法)

    [root@goldtest ~]# cat ip.log 10.0.0.1 oldboy 10.0.0.2 oldgirl 10.0.0.4 tingting 10.0.0.4 oldboy old ...

  8. awk grep sed 的一些问题

    条件   匹配    打印含关键字的行 ps aux  | sort -k 4 -r | awk '$4 ~ /^[0-9]/ && $4>0 {print $4,$11}' z ...

  9. 如何在sed中使用变量,两种方法

    第一 在sed条件中是不认识变量取值的 sed '/$x/d' test 所以要想它能够识别变量 sed "/$x/d/" test 方法简单就是把"单引号"变 ...

随机推荐

  1. tensorflow非线性回归(03-1)

    这个程序为简单的三层结构组成:输入层.中间层.输出层 要理清各层间变量个数 import numpy as np import matplotlib.pyplot as plt import tens ...

  2. http的3次握手与4次挥手

    Http的3次握手: 第一次握手:客户端发送一个带SYN的TCP报文到服务器,表示客户端想要和服务器端建立连接. 第二次握手:服务器端接收到客户端的请求,返回客户端报文,这个报文带有SYN和ACK确认 ...

  3. 51nod 1449:砝码称重

    1449 砝码称重 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  取消关注 现在有好多种砝码,他们的重量是 w0,w1 ...

  4. 微信授权登陆接入第三方App(步骤总结)Android。

    这几天开发要用到微信授权的功能,所以就研究了一下.可是微信开放平台接入指南里有几个地方写的不清不楚.在此总结一下,以便需要的人. 很多微信公众平台的应用如果移植到app上的话就需要微信授权登陆了. 目 ...

  5. Maven项目-端口被占用java.net.BindException: Address already in use: JVM_Bind <null>:8080解决方法

    异常显示: 问题所在:之前启动的tomcat未停止,端口被占用. 解决方法: 养成良好的习惯,用完之后停掉服务.

  6. redhat 7.6 查看硬件负载命令

    1.  命令 查看CPU负载 命令1:uptime 命令2:cat  /proc/loadavg 查看CPU信息:cat  /proc/cpuinfo load average:表示平均1分钟内运行的 ...

  7. 郁闷的 IE6/7/8 所遇兼容问题

    IE6,7只支持inline元素设置为inline-block,但不支持block元素转换成inline-block,所以非inline元素在IE6,7下要转换成inline-block,需先转换成i ...

  8. Django学习 之 Django安装与一个简单的实例认识

    一.Django简介 1.MVC与MTV模型 (1)MVC模型 Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的. ...

  9. python 中的富文本编译器

    第一种方式: 1,pip install django-tinymce 2,在INSTALL_APPS里面添加tinymce        在站点中使用: 配置setting.py TINYMCE_D ...

  10. tf-idf、朴素贝叶斯的短文本分类简述

    朴素贝叶斯分类器(Naïve Bayes classifier)是一种相当简单常见但是又相当有效的分类算法,在监督学习领域有着很重要的应用.朴素贝叶斯是建立在“全概率公式”的基础下的,由已知的尽可能多 ...