0

0

【愚公系列】2023年11月 大数据教学课程 004-Linux管道相关命令

看不見的法師

看不見的法師

发布时间:2025-07-13 08:02:35

|

604人浏览过

|

来源于php中文网

原创

?前言

linux和其他类unix系统中,管道(pipeline)是将一个命令的输出直接传递给另一个命令的一种方法,以便实现高效的数据处理和传输。

?一、管道相关命令?1.cut

数据准备

代码语言:javascript代码运行次数:0运行复制
cd /export/ && rm -rf *vim 1.txt     111:aaa:bbb:ccc222:ddd:eee:fff333:ggg:hhh444:iii

第一步: 截取出1.txt文件中前2行的第5个字符

命令

含义

cut 动作 文件

从指定文件 截取内容

参数

参数

英文

含义

-c

characters

按字符选取内容

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cut -c 5 1.txt adgi[root@node01 export]# cat 1.txt 111:aaa:bbb:ccc222:ddd:eee:fff333:ggg:hhh444:iii[root@node01 export]# cat 1.txt | cut -c 5adgi[root@node01 export]# head -2 1.txt 111:aaa:bbb:ccc222:ddd:eee:fff[root@node01 export]# head -2 1.txt | cut -c 5ad

第二步: 截取出1.txt文件中前2行以”:”进行分割的第1,2,3段内容

参数

英文

含义

-d '分隔符'

delimiter

指定分隔符

-f n1,n2

fields

分割以后显示第几段内容, 使用 , 分割

范围控制

范围

含义

n

只显示第n项

n-

显示 从第n项 一直到行尾

n-m

显示 从第n项 到 第m项(包括m)

代码语言:javascript代码运行次数:0运行复制
head -2 1.txt | cut -d ':' -f 1,2,3

或者

代码语言:javascript代码运行次数:0运行复制
head -2 1.txt | cut -d ':' -f 1-3
【愚公系列】2023年11月 大数据教学课程 004-Linux管道相关命令
?2.sort

数据准备

代码语言:javascript代码运行次数:0运行复制
cd /exportvim 2.txtbananaapplepearorangepear

第一步: 对字符串排序.

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 2.txt bananaapplepearorangepear[root@node01 export]# sort 2.txt applebananaorangepearpear[root@node01 export]# cat 2.txt | sortapplebananaorangepearpear

第二步: 去重排序

参数

英文

含义

-u

unique

去掉重复的

它的作用很简单,就是在输出行中去除重复行。.

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 2.txt bananaapplepearorangepear[root@node01 export]# sort 2.txt applebananaorangepearpearYou have new mail in /var/spool/mail/root[root@node01 export]# sort -u 2.txt applebananaorangepear[root@node01 export]# cat 2.txt | sort -uapplebananaorangepear

第三步: 对数值排序

数据准备

代码语言:javascript代码运行次数:0运行复制
cd /export/vim 3.txt1357112412461089

参数

英文

含义

-n

numeric-sort

按照数值大小排序

-r

reverse

使次序颠倒

1、默认按照字符串排序

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# sort 3.txt 1101123456789[root@node01 export]# cat 3.txt | sort1101123456789

2、升序

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# sort -n 3.txt 1234567891011[root@node01 export]# cat 3.txt | sort -n1234567891011

3、倒序

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 3.txt | sort -n -r1110987654321

4、合并式

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 3.txt | sort -nr1110987654321

第四步: 对成绩排序

数据准备

代码语言:javascript代码运行次数:0运行复制
cd /exportvim 4.txtzhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maqi 88 22 66zhouba 98 44 46

参数

英文

含义

-t

field-separator

指定字段分隔符

-k

key

根据那一列排序

根据第二段成绩 进行倒序显示 所有内容

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 4.txt zhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maqi 88 22 66zhouba 98 44 46[root@node01 export]# cat 4.txt | sort -t ' ' -k 2wangwu 38 33 86zhangsan 68 99 26zhaoliu 78 44 36maqi 88 22 66zhouba 98 44 46lisi 98 66 96[root@node01 export]# cat 4.txt | sort -t ' ' -k 2 -n -rzhouba 98 44 46lisi 98 66 96maqi 88 22 66zhaoliu 78 44 36zhangsan 68 99 26wangwu 38 33 86
?3.wc

数据准备

代码语言:javascript代码运行次数:0运行复制
cd /export/vim 5.txt111222 bbb333 aaa bbb 444 aaa bbb ccc555 aaa bbb ccc ddd666 aaa bbb ccc ddd eee

第一步: 显示指定文件 字节数, 单词数, 行数 信息.

命令

含义

wc 文件名

显示指定文件 字节数, 单词数, 行数 信息

显示指定文件 字节数, 单词数, 行数 信息

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# wc 5.txt  6 21 85 5.txt[root@node01 export]# cat 5.txt 111222 bbb333 aaa bbb 444 aaa bbb ccc555 aaa bbb ccc ddd666 aaa bbb ccc ddd eee[root@node01 export]# cat 5.txt | wc      6      21      85

第二步: 只显示 文件 的行数

参数

英文

含义

-c

bytes

字节数

-w

words

单词数

-l

lines

行数

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 5.txt 111222 bbb333 aaa bbb 444 aaa bbb ccc555 aaa bbb ccc ddd666 aaa bbb ccc ddd eeeYou have new mail in /var/spool/mail/root[root@node01 export]# cat 5.txt | wc      6      21      85[root@node01 export]# cat 5.txt | wc -l6

第三步: 统计多个文件的 行数 单词数 字节数

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# wc 2.txt 3.txt 4.txt 5.txt   5   5  30 2.txt 11  11  24 3.txt  6  24  94 4.txt  6  21  85 5.txt 28  61 233 total[root@node01 export]# wc *.txt  5   5  30 2.txt 11  11  24 3.txt  6  24  94 4.txt  6  21  85 5.txt 28  61 233 total

第四步: 查看 /etc 目录下 有多少个 子内容 .

代码语言:javascript代码运行次数:0运行复制
ll /etc | wc -l
【愚公系列】2023年11月 大数据教学课程 004-Linux管道相关命令
?4.uniq

数据准备

代码语言:javascript代码运行次数:0运行复制
cd /export/vim 6.txt张三    98李四    100王五    90赵六    95麻七    70李四    100王五    90赵六    95麻七    70

第一步:实现去重效果

命令

英文

含义

uniq [参数] 文件

unique 唯一

去除重复行

实现去重效果

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 6.txt 张三    98李四    100王五    90赵六    95麻七    70李四    100王五    90赵六    95麻七    70[root@node01 export]# cat 6.txt | sort张三    98李四    100李四    100王五    90王五    90赵六    95赵六    95麻七    70麻七    70[root@node01 export]# cat 6.txt | sort | uniq张三    98李四    100王五    90赵六    95麻七    70

第二步:不但去重,还要 统计出现的次数

参数

英文

含义

-c

count

统计每行内容出现的次数

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 6.txt | sort | uniq -c1 张三    982 李四    1002 王五    902 赵六    952 麻七    70
?5.tee

命令

含义

命令结果 | tee 文件1 文件2 文件3

通过 tee 可以将命令结果 通过管道 输出到 多个文件中

将去重统计的结果 放到 a.txt、b.txt、c.txt 文件中

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# ls2.txt  3.txt  4.txt  5.txt  6.txt[root@node01 export]# cat 6.txt | sort | uniq -c | tee a.txt b.txt c.txt1 张三    982 李四    1002 王五    902 赵六    952 麻七    70[root@node01 export]# ls2.txt  3.txt  4.txt  5.txt  6.txt  a.txt  b.txt  c.txt[root@node01 export]# cat a.txt 1 张三    982 李四    1002 王五    902 赵六    952 麻七    70
?6.tr

数据准备

代码语言:javascript代码运行次数:0运行复制
cd /exportvim 7.txtitheimaHELLOabc1d4e5f

第一步: 实现 替换效果

命令

英文

含义

命令结果 | tr 被替换的字符 新字符

translate

实现 替换效果

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 7.txt itheimaHELLOabc1d4e5f[root@node01 export]# cat 7.txt | tr 'i' 'I'ItheImaHELLOabc1d4e5f[root@node01 export]# cat 7.txt | tr [a-z] [A-Z]ITHEIMAHELLOABC1D4E5FYou have new mail in /var/spool/mail/root[root@node01 export]# cat 7.txt | tr [A-Z] [a-z]itheimahelloabc1d4e5f

第二步: 实现删除效果

命令

英文

含义

命令结果 | tr -d 被删除的字符

delete

删除指定的字符

.

代码语言:javascript代码运行次数:0运行复制
echo 'abc1d4e5f' | tr -d [0-9]
【愚公系列】2023年11月 大数据教学课程 004-Linux管道相关命令

第三步: 单词计数

数据准备

代码语言:javascript代码运行次数:0运行复制
cd /exportvim 8.txthello,world,hadoophive,sqoop,flume,hellokitty,tom,jerry,worldhadoop
代码语言:javascript代码运行次数:0运行复制
-------- 查看文件内容[root@node01 export]# cat 8.txt  hello,world,hadoophive,sqoop,flume,hellokitty,tom,jerry,worldhadoop-------- 将 逗号, 替换成 换行符[root@node01 export]# cat 8.txt | tr ',' '\n'helloworldhadoophivesqoopflumehellokittytomjerryworldhadoop-------- 排序[root@node01 export]# cat 8.txt | tr ',' '\n' | sortflumehadoophadoophellohellohivejerrykittysqooptomworldworld-------- 去重[root@node01 export]# cat 8.txt | tr ',' '\n' | sort | uniqflumehadoophellohivejerrykittysqooptomworld-------- 计数[root@node01 export]# cat 8.txt | tr ',' '\n' | sort | uniq -c1 flume2 hadoop2 hello1 hive1 jerry1 kitty1 sqoop1 tom2 world[root@node01 export]# 
?7.split

第一步: 按 字节 将 大文件 切分成 若干小文件

命令

英文

含义

split -b 10k 文件

byte

将大文件切分成若干10KB的小文件

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# ll -htotal 108K-rw-r--r-- 1 root root 105K Jul 12 20:35 v.txt[root@node01 export]# split -b 20k v.txt [root@node01 export]# lltotal 216-rw-r--r-- 1 root root 106538 Jul 12 20:35 v.txt-rw-r--r-- 1 root root  20480 Jul 12 20:39 xaa-rw-r--r-- 1 root root  20480 Jul 12 20:39 xab-rw-r--r-- 1 root root  20480 Jul 12 20:39 xac-rw-r--r-- 1 root root  20480 Jul 12 20:39 xad-rw-r--r-- 1 root root  20480 Jul 12 20:39 xae-rw-r--r-- 1 root root   4138 Jul 12 20:39 xaf

第二步: 按 行数 将 大文件 切分成 若干小文件

命令

英文

含义

split -l 1000 文件

lines

将大文件切分成若干1000行 的小文件

代码语言:javascript代码运行次数:0运行复制
# 清空不用的内容[root@node01 export]# rm -rf x*# 罗列当前目录中内容[root@node01 export]# lsv.txt# 查看指定文件的行数: 共 2780行[root@node01 export]# wc -l v.txt 2780 v.txt# 按照行数 每个文件1000行 进行切割[root@node01 export]# split -l 1000 v.txt # 查看当前文件下每个文件的行数[root@node01 export]# wc -l *  2780 v.txt  1000 xaa  1000 xab   780 xac
?8.awk(重点)

第一步: 搜索含有 zhangli 的学生成绩

命令

含义

awk ‘/搜索字符/’ score.txt

模糊查询

代码语言:javascript代码运行次数:0运行复制
# 查看文档内容[root@node01 export]# cat score.txt zhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maq 88 22 66zhouba 98 44 46# 搜索含有 zhang  和 li 的学生成绩[root@node01 export]# cat score.txt | awk '/zhang|li/'zhangsan 68 99 26lisi 98 66 96zhaoliu 78 44 36

第二步: 指定分割符, 根据下标显示内容

命令

含义

awk -F ‘,’ ‘{print $1, $2, $3}’ 文件

操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

选项

选项

英文

含义

-F ','

field-separator

使用 指定字符 分割

$ + 数字

获取第几段内容

$0

获取 当前行 内容

NF

field

表示当前行共有多少个字段

$NF

代表 最后一个字段

$(NF-1)

代表 倒数第二个字段

海螺视频
海螺视频

海螺AI推出的AI视频生成工具,可以生成高质量的视频内容。

下载

NR

代表 处理的是第几行

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat score.txt zhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maq 88 22 66zhouba 98 44 46[root@node01 export]# cat score.txt | awk -F ' ' '{print $1,$2,$3}'zhangsan 68 99lisi 98 66wangwu 38 33zhaoliu 78 44maq 88 22zhouba 98 44

第三步: 指定分割符, 根据下标显示内容

命令

含义

awk -F ’ ’ ‘{OFS=“===”}{print $1, $2, $3}’ 1.txt

操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

选项

选项

英文

含义

OFS="字符"

output field separator

向外输出时的段分割字符串

转义序列

含义

\b

退格

\f

换页

\n

换行

\r

回车

\t

制表符

代码语言:javascript代码运行次数:0运行复制
# 查看文档内容[root@node01 export]# cat score.txtzhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maq 88 22 66zhouba 98 44 46# 按照 === 进行分割, 打印 第一段 第二段 第三段[root@node01 export]# cat score.txt | awk -F ' ' '{OFS="==="}{print $1,$2,$3}'zhangsan===68===99lisi===98===66wangwu===38===33zhaoliu===78===44maq===88===22zhouba===98===44# 按照 制表符tab 进行分割, 打印 第一段 第二段 第三段[root@node01 export]# cat score.txt | awk -F ' ' '{OFS="\t"}{print $1,$2,$3}'zhangsan        68      99lisi    98      66wangwu  38      33zhaoliu 78      44maq     88      22zhouba  98      44

第四步: 调用 awk 提供的函数

命令

含义

awk -F ‘,’ ‘{print toupper($2)}’ 1.txt

操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容

常用函数如下:

函数名

含义

作用

toupper()

upper

字符 转成 大写

tolower()

lower

字符 转成小写

length()

length

返回 字符长度

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat score.txt zhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maq 88 22 66zhouba 98 44 46# 打印第一段内容[root@node01 export]# cat score.txt | awk -F ' ' '{print $1}'zhangsanlisiwangwuzhaoliumaqzhouba# 将第一段内容转成大写 且 显示[root@node01 export]# cat score.txt | awk -F ' ' '{print toupper($1)}'ZHANGSANLISIWANGWUZHAOLIUMAQZHOUBA

第五步: if语句 查询及格的学生信息

命令

含义

awk -F ‘,’ ‘{if($4>60) print $1, $4 }’ score.txt

如果及格,就显示 $1, $4

awk -F ‘,’ ‘{if($4>60) print $1, $4, “及格”; else print $1, $4, “不及格”}’ score.txt

显示 姓名, $4, 是否及格

选项

参数

含义

if($0 ~ “aa”) print $0

如果这一行包含 “aa”, 就打印这一行内容

if($1 ~ “aa”) print $0

如果**第一段 **包含 “aa”, 就打印这一行内容

if($1 == “lisi”) print $0

如果第一段 等于 “lisi”, 就打印这一行内容

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat score.txt zhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maq 88 22 66zhouba 98 44 46# 打印及格的同学信息[root@node01 export]# cat score.txt | awk -F ' ' '{if($4>60) print $1,$4,"及格"}'lisi 96 及格wangwu 86 及格maq 66 及格# 显示学生的及格状态[root@node01 export]# cat score.txt | awk -F ' ' '{if($4>60) print $1,$4,"及格"; else print $1,$4,"不及格"}'zhangsan 26 不及格lisi 96 及格wangwu 86 及格zhaoliu 36 不及格maq 66 及格zhouba 46 不及格

第六步: 段内容 求指定学科平均分

命令

含义

awk ‘BEGIN{初始化操作}{每行都执行} END{结束时操作}’ 文件名

BEGIN{ 这里面放的是执行前的语句 }{这里面放的是处理每一行时要执行的语句}END {这里面放的是处理完所有的行后要执行的语句 }

代码语言:javascript代码运行次数:0运行复制
# 查看文档内容[root@node01 export]# cat score.txt zhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maq 88 22 66zhouba 98 44 46# 查看总分[root@node01 export]# cat score.txt | awk -F ' ' 'BEGIN{}{total=total+$4} END{print total}'356# 查看总分, 总人数[root@node01 export]# cat score.txt | awk -F ' ' 'BEGIN{}{total=total+$4} END{print total, NR}'356 6# 查看总分, 总人数, 平均分[root@node01 export]# cat score.txt | awk -F ' ' 'BEGIN{}{total=total+$4} END{print total, NR, (total/NR)}'356 6 59.3333
?9.sed

第一步: 实现 查询 功能

命令

含义

sed 可选项 目标文件

对目标文件 进行 过滤查询 或 替换

可选参数

可选项

英文

含义

p

print

打印

$

代表 最后一行

-n

仅显示处理后的结果

-e

expression

根据表达式 进行处理

1、列出 1.txt的 3~5行 的数据

代码语言:javascript代码运行次数:0运行复制
# 查看所有内容[root@node01 export]# cat 1.txt aaa java rootbbb helloccc rtddd root nologineee rttfff ROOT nologinggg rttt# 查看前3~5行内容[root@node01 export]# cat 1.txt | sed -n -e '3,5p' ccc rtddd root nologineee rtt

2、列出01.txt的所有数据

代码语言:javascript代码运行次数:0运行复制
# 查看文件所有内容[root@node01 export]# cat 1.txt aaa java rootbbb helloccc rtddd root nologineee rttfff ROOT nologinggg rttt# 查看文件所有内容, $代表最后一行[root@node01 export]# cat 1.txt | sed -n -e '1,$p'aaa java rootbbb helloccc rtddd root nologineee rttfff ROOT nologinggg rttt

3、列出01.txt的3-5行数据 且 显示行号

可选项

含义

=

打印当前行号

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# sed -n -e '3,5=' -e '3,5p' 1.txt  3ccc rt4ddd root nologin5eee rtt[root@node01 export]# cat 1.txt aaa java rootbbb helloccc rtddd root nologineee rttfff ROOT nologinggg rttt[root@node01 export]# cat -n 1.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt[root@node01 export]# cat -n 1.txt | sed -n -e '3,5p'3  ccc rt4  ddd root nologin5  eee rtt

4、查找 1.txt 中包含 root

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat 1.txt aaa java rootbbb helloccc rtddd root nologineee rttfff ROOT nologinggg rttt[root@node01 export]# cat 1.txt | sed -n -e '/root/p'aaa java rootddd root nologin[root@node01 export]# cat 1.txt | grep root   aaa java rootddd root nologin

5、列出01.txt中包含root的内容,root不区分大小写,并显示行号

可选项

英文

含义

I

ignore

忽略大小写

答案:

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# cat -n 1.txt | sed -n -e '/root/Ip'     1  aaa java root     4  ddd root nologin     6  fff ROOT nologin     [root@node01 export]# cat -n 1.txt | grep -i root     1  aaa java root     4  ddd root nologin     6  fff ROOT nologin

6、查找出1.txt中 字母r后面是多个t的行,并显示行号

可选项

英文

含义

-r

regexp-extended

识别正则

代码语言:javascript代码运行次数:0运行复制
# 显示所有 且 显示行号[root@node01 export]# cat -n 1.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt# 搜索匹配的行[root@node01 export]# cat -n 1.txt | sed -n -r -e '/r+t/p'3  ccc rt5  eee rtt7  ggg rttt

第二步: 实现 删除 功能

1、删除01.txt中前3行数据,并显示行号

可选项

英文

含义

d

delete

删除指定内容

代码语言:javascript代码运行次数:0运行复制
# 打印所有内容 且 显示行号[root@node01 export]# nl 1.txt      1  aaa java root     2  bbb hello     3  ccc rt     4  ddd root nologin     5  eee rtt     6  fff ROOT nologin     7  ggg rttt        [root@node01 export]# nl 1.txt | sed -e '1,3d'     4  ddd root nologin     5  eee rtt     6  fff ROOT nologin     7  ggg rttt

2、保留1.txt中前3行数据,并显示行号

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# nl 1.txt | sed -e '4,$d'1  aaa java root2  bbb hello3  ccc rt# 显示前三行内容[root@node01 export]# head -3 1.txt aaa java rootbbb helloccc rt# 显示前三行内容 且带 序号[root@node01 export]# head -3 1.txt | nl1  aaa java root2  bbb hello3  ccc rt# 显示所有[root@node01 export]# nl 1.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt# 显示前三行内容 且带 序号[root@node01 export]# nl 1.txt | head -31  aaa java root2  bbb hello3  ccc rt

第三步: 实现 修改 功能

1、在01.txt的第二行 下面 添加aaaaa,并显示行号

参数

英文

含义

i

insert

目标前面 插入内容

a

append

目标后面 追加内容

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# nl 1.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt[root@node01 export]# nl 1.txt | sed -e '2a aaaaaa'1  aaa java root2  bbb helloaaaaaa3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt

2、在1.txt的第1行前添加bbbbb,并显示行号

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# nl 1.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt[root@node01 export]# nl 1.txt | sed -e '1i bbbbbbbbb'bbbbbbbbb1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt

第四步: 实现 替换 功能

1、把1.txt中的nologin 替换成为huawei,并显示行号

英文

含义

s/oldString/newString/

replace

替换

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# nl 1.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt[root@node01 export]# nl 1.txt | sed -e 's/root/huawei/'1  aaa java huawei2  bbb hello3  ccc rt4  ddd huawei nologin5  eee rtt6  fff ROOT nologin7  ggg rttt

2、把01.txt中的1,2行替换为aaa,并显示行号

选项

英文

2c 新字符串

replace

使用新字符串 替换 选中的行

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# nl 1.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt[root@node01 export]# nl 1.txt | sed -e '2c aaaa'1  aaa java rootaaaa3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt

第五步: 对 原文件 进行操作

1、 在01.txt中把nologin替换为 huawei

参数

英文

含义

-i

in-place

替换原有文件内容

代码语言:javascript代码运行次数:0运行复制
# 备份原始文件内容cp 1.txt 2.txt# 原文件内容[root@node01 export]# cat 1.txt aaa java rootbbb helloccc rtddd root nologineee rttfff ROOT nologinggg rttt# 替换[root@node01 export]# sed -i -e 's/nologin/huawei/' 1.txt # 观察变化[root@node01 export]# cat 1.txt aaa java rootbbb helloccc rtddd root huaweieee rttfff ROOT huaweiggg rttt

2、在01.txt文件中第2、3行替换为aaaaaa

代码语言:javascript代码运行次数:0运行复制
# 原文件内容[root@node01 export]# cat 1.txt aaa java rootbbb helloccc rtddd root huaweieee rttfff ROOT huaweiggg rttt# 替换[root@node01 export]# sed -i -e '2,3c aaaaaaa' 1.txt # 观察变化[root@node01 export]# cat 1.txt aaa java rootaaaaaaaddd root huaweieee rttfff ROOT huaweiggg rttt

注意:在进行操作之前,最好是对数据进行备份,放置操作失误,数据无法恢复!

3、删除01.txt中前2行数据,并且删除原文件中的数据

代码语言:javascript代码运行次数:0运行复制
# 查看原文件内容[root@node01 export]# cat 2.txt aaa java rootaaaaaaaddd root huaweieee rttfff ROOT huaweiggg rttt# 删除1,2行内容[root@node01 export]# sed -i -e '1,2d' 2.txt # 查看原文件内容[root@node01 export]# cat 2.txt ddd root huaweieee rttfff ROOT huaweiggg rttt

第六步: 综合 练习

1、获取ip地址

符号

含义

^

表示开始

^aaa 表示以 aaa 开始

$

表示结尾

bbb$ 表示以 bbb 结尾

.*

表示任意

^.* 表示以 任意字符开始

代码语言:javascript代码运行次数:0运行复制
# 查看网卡信息[root@node01 export]# ifconfig eth0eth0      Link encap:Ethernet  HWaddr 00:0C:29:DF:0A:6A            inet addr:192.168.100.204  Bcast:192.168.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fedf:a6a/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:12999 errors:0 dropped:0 overruns:0 frame:0          TX packets:7353 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000           RX bytes:1334125 (1.2 MiB)  TX bytes:1333707 (1.2 MiB)# 根据关键 搜索行[root@node01 export]# ifconfig eth0 | grep 'inet addr:'          inet addr:192.168.100.204  Bcast:192.168.100.255  Mask:255.255.255.0          # 去掉ip地址以前的部分[root@node01 export]# ifconfig eth0 | grep 'inet addr:' | sed -e 's/^.*addr://'192.168.100.204  Bcast:192.168.100.255  Mask:255.255.255.0# 去掉ip地址以后的部分[root@node01 export]# ifconfig eth0 | grep 'inet addr:' | sed -e 's/^.*addr://' | sed -e 's/Bcast:.*$//'192.168.100.204 

2、从 2.txt 中提出数据,匹配出包含root的内容,再把nologin替换为itheima

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# nl 2.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt# 匹配含有root内容的行[root@node01 export]# nl 2.txt | grep root1  aaa java root4  ddd root nologin# 匹配含有root内容的行 且 忽略大小写  [root@node01 export]# nl 2.txt | grep -i root1  aaa java root4  ddd root nologin6  fff ROOT nologin# 将nologin 替换成 itheima[root@node01 export]# nl 2.txt | grep -i root | sed -e 's/nologin/itheima/'  1  aaa java root4  ddd root itheima6  fff ROOT itheima
代码语言:javascript代码运行次数:0运行复制
nl 01.txt | grep 'root' | sed -e 's/nologin/itheima/'或者nl 01.txt | sed -n -e '/root/p' | sed -e 's/nologin/itheima/'或者nl 01.txt | sed -n -e '/root/{s/nologin/itheima/p}' #只显示替换内容的行

3、从2.txt中提出数据,删除前2行,并把nologin替换为itheima,并显示行号

代码语言:javascript代码运行次数:0运行复制
[root@node01 export]# nl 2.txt 1  aaa java root2  bbb hello3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt# 删除前两行内容[root@node01 export]# nl 2.txt | sed -e '1,2d'3  ccc rt4  ddd root nologin5  eee rtt6  fff ROOT nologin7  ggg rttt# 替换内容[root@node01 export]# nl 2.txt | sed -e '1,2d' | sed -e 's/nologin/itheima/'3  ccc rt4  ddd root itheima5  eee rtt6  fff ROOT itheima7  ggg rttt

?感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

559

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

438

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

776

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

480

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

574

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

1091

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

659

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

554

2023.09.20

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

31

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 3万人学习

MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号