image

一、文件处理命令

1、sort命令

  • sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。

sort语法

[root@www ~]# sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b  :忽略最前面的空格符部分;
-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r  :反向排序;
-u  :就是 uniq ,相同的数据中,仅出现一行代表;
-t  :分隔符,默认是用 [tab] 键来分隔;
-k  :以那个区间 (field) 来进行排序的意思

案例 1:

对/etc/passwd 的账号进行排序
[root@www ~]# cat /etc/passwd | sort
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
  • sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,所以由字母 a 开始升序排序。

/etc/passwd 内容是以 : 来分隔的,我想以第三栏来排序,该如何
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin

①默认是以字符串来排序的,如果想要使用数字排序:

cat /etc/passwd | sort -t ':' -k 3n
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh

②默认是升序排序,如果要倒序排序,如下

cat /etc/passwd | sort -t ':' -k 3nr
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
ntp:x:106:113::/home/ntp:/bin/false
messagebus:x:105:109::/var/run/dbus:/bin/false
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

③如果要对/etc/passwd,先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序。

cat /etc/passwd |  sort -t':' -k 6.2,6.4 -k 1r      
sync:x:4:65534:sync:/bin:/bin/sync
proxy:x:13:13:proxy:/bin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh

④查看/etc/passwd有多少个shell:对/etc/passwd的第七个域进行排序,然后去重:

cat /etc/passwd |  sort -t':' -k 7 -u
root:x:0:0:root:/root:/bin/bash
syslog:x:101:102::/home/syslog:/bin/false
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

2、uniq命令

  • uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

uniq语法

[root@www ~]# uniq [-icu]
选项与参数:
-i   :忽略大小写字符的不同;
-c  :进行计数
-u  :只显示唯一的行

testfile的内容如下

cat testfile
hello
world
friend
hello
world
hello

①直接删除未经排序的文件,将会发现没有任何行被删除

#uniq testfile  
hello
world
friend
hello
world
hello

②排序文件,默认是去重

#cat words | sort |uniq
friend
hello
world

③排序之后删除了重复行,同时在行首位置输出该行重复的次数

#sort testfile | uniq -c
1 friend
3 hello
2 world

④仅显示存在重复的行,并在行首显示该行重复的次数

#sort testfile | uniq -dc
3 hello
2 world

⑤仅显示不重复的行

sort testfile | uniq -u
friend  

3、cut命令

  • cut命令可以从一个文本文件或者文本流中提取文本列。

cut语法

[root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
[root@www ~]# cut -c 字符区间            <==用于排列整齐的信息
选项与参数:
-d  :后面接分隔字符。与 -f 一起使用;
-f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c  :以字符 (characters) 的单位取出固定字符区间;

PATH 变量如下

[root@www ~]# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
# 1 | 2       | 3   | 4       | 5            | 6            | 7

①将 PATH 变量取出,我要找出第五个路径

#echo $PATH | cut -d ':' -f 5
/usr/local/bin

②将 PATH 变量取出,我要找出第三和第五个路径。

#echo $PATH | cut -d ':' -f 3,5
/sbin:/usr/local/bin

③将 PATH 变量取出,我要找出第三到最后一个路径。

echo $PATH | cut -d ':' -f 3-
/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games

image

4、tr命令

  • 什么是tr命令?tr,translate的简写

  • 在这里用到的意思是转化,转变,转换

  • 通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。

rt语法

  tr命令格式:tr [ -d ] [ -c ] [ -s ] [ 字符串1 ] [ 字符串2 ] 文件名。其中字符串1用于查询,字符串2用于处理各种转换。
  选项与参数:
 	-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
	-d 删除字符串1中所有输入字符。
	-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字		 符串。			

案例:

①删除文件中的空行

$ echo -e "1\n\n2\n\n\n3" | tr -s '\n' #输出1\n2\n3

 # 如果参数-s替换为-d,就是删除所有换行符,输出结果为123。

②删除重复字符

$ echo "Hellooo    Javaaa" | tr -s "[ ao]" #输出Hello Java

#  说明:-s是删除所有重复出现字符序列,只保留第一个。再用下面一个例子加深一下这句话的理解。

$ echo "Heoolloooo oo Pythonnnnn" | tr -s 'on' #删除字符on,输出Heollo o Python

③删除空格

$ echo "   Hello World  " | tr -d '[ \t]' #删除空格,包括tab键。输出HelloWorld

#  说明:这里tr命令会删除包括中间的空格,如果只需要删除行首或者尾部的空格,可以使用sed命令

④大小写替换,shell编程中可用于忽略大小写的字符串判断场景。

$ echo "Hello World" | tr '[a-z]' '[A-Z]' #小写转大写,输出HELLO WORLD
$ echo "Hello World" | tr '[A-Z]' '[a-z]' #大写转小写,输出hello world
$ echo "Hello World" | tr '[A-Za-z]' '[a-zA-Z]' #大小写互换,输出hELLO wORLD

⑤删除数字或字母,在shell编程中可用于判断输入是否为纯数字或字母。

$ echo "hello 123World456" | tr -d '[0-9]' #删除数字,输出hello World
$ echo "hello123World456" | tr -d '[a-zA-Z]' #删除字母,输出123456

⑥多行内容合并为一行。

$ echo -e "1\n2\n3\n4" | tr -d '\n' #输出1234

⑦删除非数字字符,主要用于了解下-c参数的作用。

$ echo "2018abcdefdf06zzz01" |tr -d -c '[0-9]' #输出20180601

5、wc命令

  • 统计文件里面有多少单词,多少行,多少字符

wc语法

[root@www ~]# wc [-lwm]
选项与参数:
-c # : 统计文件的Bytes数
-l # : 仅列出行;
-w # : 仅列出多少字(英文单字);
-m # : 多少字符;

注:在Linux系统中,一段连续的数字或字母组合为一个词

默认使用wc统计/etc/passwd

#wc /etc/passwd
40   45 1719 /etc/passwd

40是行数,45是单词数,1719是字节数

wc的命令比较简单使用,每个参数使用如下:

#wc -l /etc/passwd   #统计行数,在对记录数时,很常用
23 /etc/passwd       #表示系统有40个账户

#wc -w /etc/passwd  #统计单词出现次数
41 /etc/passwd

#wc -m /etc/passwd  #统计文件的字节数
1051 /etc/passwd

#wc -c /etc/passwd  #统计文件的Bytes数
1051 /etc/passwd

 # -m -c 理解为一样就好

image

二、linux三剑客之sed

  • sed 是一种新型的,非交互式的编辑器。它能执行与编辑器 vi 和 ex 相同的编辑任务。sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令、指定文件名,然后在屏幕上查看输出。 sed 编辑器没有破坏性,它不会修改文件,除非使用 shell 重定向来保存输出结果。默认情况下,所有的输出行都被打印到屏幕上。

sed是linux中,流媒体编辑器。

grep : 过滤文本
sed  :  修改文本
awk  :  处理文本

sed语法格式

sed [参数] '处理规则' [操作对象]

sed的参数

选项 说明
-n 使用安静模式,在一般情况所有的 STDIN 都会输出到屏幕上,加入-n 后只打印 被 sed 特殊处理的行
-e 多重编辑,且命令顺序会影响结果
-f 指定一个 sed 脚本文件到命令行执行,
-r Sed 使用扩展正则
-i 直接修改文档读取的内容,不在屏幕上输出

sed的编辑模式

命 令 说 明
a\ 在当前行后添加一行或多行
c\ 用新文本修改(替换)当前行中的文本
d 删除行
i\ 在当前行之前插入文本
h 把模式空间里的内容复制到暂存缓存区
H 把模式空间里的内容追加到暂存缓存区
g 取出暂存缓冲区里的内容,将其复制到模式空间,覆盖该处原有内容
G 取出暂存缓冲区里的内容,将其复制到模式空间,追加在原有内容后面
l 列出非打印字符
p 打印行
n 读入下一输入行,并从下一条命令而不是第一条命令开始处理
q 结束或退出 sed
r 从文件中读取输入行
对所选行意外的所有行应用命令
s 用一个字符串替换另一个
i 忽略大小写(跟 s 模式一起使用时)
& 代表前面匹配到的内容

sed替换标志

g 在行内进行全局替换 (全部执行)
p 打印行
w 将行写入文件
x 交换暂存缓冲区与模式空间的内容
y 将字符转换为另一字符(不能对正则表达式使用 y 命令)

打印: p 命令

  • 命令 p 是打印命令,用于显示模式缓存区的内容。默认情况下, sed 把输入行打印在屏幕上,选项-n 用于取消默认打印操纵。当选项-n 和命令 p 同时出现时, sed 可打印选定的内容

案例1

[root@Gin scripts]# sed '/north/p' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23
southwest       SW      Lewis Dalsass   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4     
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      AM Main Jr.     5.1     .94     3       13
northeast       NE      AM Main Jr.     5.1     .94     3       13
north           NO      Margot Weber    4.5     .89     5       9
north           NO      Margot Weber    4.5     .89     5       9
central         CT      Ann Stephens    5.7     .94     5       13

# 说明:默认情况下, sed 把所有输入行都打印在标准输出上。如果在某一行匹配到 north, sed就把该行另外打印一遍。 

案例2

[root@Gin scripts]# sed -n '/north/p' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
northeast       NE      AM Main Jr.     5.1     .94     3       13
north           NO      Margot Weber    4.5     .89     5       9

# 说明:默认情况下, sed 打印当前缓存区中的输入行。命令 p 指示 sed 将再次打印该行。选项-n 取消 sed 取消默认打印操作。选线-n 和命令配合使用,模式缓冲区内的输入行,只被打印一次。如果不指定-n 选项, sed 就会像上例中那样,打印出重复的行。如果指定了-n,则sed 只打印包含模式 north 的行。

删除: d 命令

  • 命令 d 用于删除输入行。sed 先将输入行从文件复制到模式缓存区,然后对该行执行 sed命令,最后将模式缓存区的内容显示在屏幕上。如果发出的是命令 d,当前模式缓存区的输入行会被删除,不被显示

案例1

[root@Gin scripts]# sed '3d' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4     
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      AM Main Jr.     5.1     .94     3       13
north           NO      Margot Weber    4.5     .89     5       9
central         CT      Ann Stephens    5.7     .94     5       13


# 说明:删除第 3 行。默认情况下,其余的行都被打印到屏幕上。

案例2

[root@Gin scripts]# sed '3,$d' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23

# 说明:删除从第三行到最后一行内容,剩余各行被打印。地址范围是开始第 3 行,结束最后一行。

替换: s 命令

  • 命令 s 是替换命令。替换和取代文件中的文本可以通过 sed 中的 s 来实现, s 后包含在斜杠中的文本是正则表达式,后面跟着的是需要替换的文本。可以通过 g 标志对行进行全局替换

案例1

[root@Gin scripts]# sed 's/west/north/g' ceshi.txt
northnorth      NW      Charles Main    3.0     .98     3       34
northern                WE      Sharon Gray     5.3     .97     5     
southnorth      SW      Lewis Dalsass   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4     
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      AM Main Jr.     5.1     .94     3       13
north           NO      Margot Weber    4.5     .89     5       9
central         CT      Ann Stephens    5.7     .94     5       13

# 说明:s 命令用于替换。命令末端的 g 表示在行内全局替换;也就是说如果每一行里出现多个west,所有的 west 都会被替换为 north。如果没有 g 命令,则只将每一行的第一 west 替换为 north。

案例2

[root@Gin scripts]# sed -n 's/^west/north/p' ceshi.txt
northern                WE      Sharon Gray     5.3     .97     5      
# 说明:s 命令用于替换。选线-n 与命令行末尾的标志 p 结合,告诉 sed 只打印发生替换的那些行;也就是说,如果只有在行首找到 west 并替换成 north 时才会打印此行。

案例3

[root@Gin scripts]# sed -n 's/Hemenway/Jones/gp' ceshi.txt
southeast       SE      Patricia Jones  4.0     .7      4       17

# 说明:文件中出现的所有的 Hemenway 都被替换为 Jones,只有发生变化的行才会打印出来。选项-n 与命令 p 的组合取消了默认的输出。标志 g 的含义是表示在行内全局替换。

指定行的范围:逗号

  • 行的范围从文件中的一个地址开始,在另一个地址结束。地址范围可以是行号(例如5,10),正则表达式(例如/Dick/和/Joe/),或者两者的结合(例如/north/,$)范围是闭合的——包含开始条件的行,结束条件的行,以及两者之间的行。如果结束条件无法满足,就会一直操作到文件结尾。如果结束条件满足,则继续查找满足开始条件的位置,范围重新开始。

案例1

[root@Gin scripts]# sed -n '/west/,/east/p' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23
southwest       SW      Lewis Dalsass   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4     

#说明:打印模式 west 和 east 之间所有的行。如果 west 出现在 east 之后的某一行,则打印的范围从 west 所在行开始,到下一个出现 east 的行或文件的末尾(如果前者未出现)。图中用箭头表示出了该范围。

img

案例2

[root@Gin scripts]# sed -n '5,/northeast/p' ceshi.txt
southeast       SE      Patricia Hemenway       4.0     .7      4     
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      AM Main Jr.     5.1     .94     3       13

# 说明:打印从第 5 行开始第一个以 northeast 开头的行之间的所有行。

多重编辑: e 命令

  • -e 命令是编辑命令,用于 sed 执行多个编辑任务的情况下。在下一行开始编辑前,所有的编辑动作将应用到模式缓存区的行上。

案例1

[root@Gin scripts]# sed -e '1,3d' -e 's/Hemenway/Jones/' ceshi.txt
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Jones  4.0     .7      4       17
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      AM Main Jr.     5.1     .94     3       13
north           NO      Margot Weber    4.5     .89     5       9
central         CT      Ann Stephens    5.7     .94     5       13

# 说明:选项-e 用于进行多重编辑。第一重编辑编辑删除第 1~3 行。第二重编辑将Hemenway 替换为 Jones。因为是逐行进行这两行编辑(即这两个命令都在模式空间的当前行上执行),所以编辑命令的顺序会影响结果。例如,如果两条命令都执行的是替换,前一次替换会影响后一次替换。

追加: a 命令

  • a 命令是追加命令,追加将新文本到文件中当前行(即读入模式的缓存区行)的后面。不管是在命令行中,还是在 sed 脚本中, a 命令总是在反斜杠的后面。

案例1

[root@Gin scripts]# sed '/^north/a Hello world!' ceshi.txt 
northwest       NW      Charles Main    3.0     .98     3       34
Hello world!
western         WE      Sharon Gray     5.3     .97     5       23
southwest       SW      Lewis Dalsass   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4     
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      AM Main Jr.     5.1     .94     3       13
Hello world!
north           NO      Margot Weber    4.5     .89     5       9
Hello world!
central         CT      Ann Stephens    5.7     .94     5       13

# 说明:命令 a 用于追加。字符串 Hello, World!被加在以 north 开头的各行之后。如果要追加的内容超过一行,则除最后一行外,其他各行都必须以反斜杠结尾。

插入: i 命令

  • i 命令是插入命令,类似于 a 命令,但不是在当前行后增加文本,而是在当前行前面插入新的文本,即刚读入缓存区模式的行。

案例1

[root@Gin scripts]# sed '/eastern/i Hello,world!\
> -----------------------' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23
southwest       SW      Lewis Dalsass   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4     
Hello,world!
-----------------------
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      AM Main Jr.     5.1     .94     3       13
north           NO      Margot Weber    4.5     .89     5       9
central         CT      Ann Stephens    5.7     .94     5       13

# 说明:命令 i 是插入命令。如果在某一行匹配到模式 eastern,i 命令就在该行的上方插入命令中插入反斜杠后面后的文本。除了最后一行,

修改: c 命令

  • c 命令是修改命令。 sed 使用该命令将已有的文本修改成新的文本。旧文本被覆盖。

案例1

[root@Gin scripts]# sed '/eastern/c Hello,world! \
> ------------------' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23
southwest       SW      Lewis Dalsass   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4     
Hello,world!
------------------
northeast       NE      AM Main Jr.     5.1     .94     3       13
north           NO      Margot Weber    4.5     .89     5       9
central         CT      Ann Stephens    5.7     .94     5       13

# 说明:c 命令是修改命令。该命令将完整地修改在模式缓冲区行的当前行。如果模式 eastern被匹配, c 命令将其后的文本替换包含 eastern 的行。

image

获取下一行: n 命令

  • n 命令表示下一条命令。 sed 使用该命令获取输入文件的下一行,并将其读入到模式缓冲区中,任何 sed 命令都将应用到匹配行,紧接着的下一行上。

案例1

[root@Gin scripts]# sed '/eastern/{n;s/AM/Archie/;}' ceshi.txt 
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23
southwest       SW      Lewis Dalsass   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      Archie Main Jr. 5.1     .94     3       13   ## 此行就是被替换的行   
north           NO      Margot Weber    4.5     .89     5       9
central         CT      Ann Stephens    5.7     .94     5       13

 # 说明:如果在某一行匹配到模式 eastern, n 命令就指示 sed 用下一个输入行(即包含 AM MainJr 的那行)替换模式空间中的当前行,并用 Archie 替换 AM,然后打印该行,再继续往下处理

转换: y,命令

  • y 命令表示转换。该命令与 tr 命令相似,字符按照一对一的方式从左到右进行转换。例如 y/abc/ABC/,会把小写字母转换成大写字母, a-->A,b-->B,c-->C。

案例1

[root@Gin scripts]# sed '1,3y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' ceshi.txt
NORTHWEST       NW      CHARLES MAIN    3.0     .98     3       34
WESTERN         WE      SHARON GRAY     5.3     .97     5       23
SOUTHWEST       SW      LEWIS DALSASS   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage       4.4     .84     5       20
northeast       NE      AM Main Jr.     5.1     .94     3       13
north           NO      Margot Weber    4.5     .89     5       9
central         CT      Ann Stephens    5.7     .94     5       13

# 说明:y 命令把 1~3 行中所有的小写命令字母都转换成了大写。正则表达式元字符对 y 命令不起作用。与替分隔符一样,斜杠可以被替换成其他字符。

退出: q 命令

  • 命令表示退出命令。该命令将导致 sed 程序退出,且不再进行其他的处理。

案例1

[root@Gin scripts]# sed '5q' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23
southwest       SW      Lewis Dalsass   2.7     .8      2       18
southern        SO      Suan Chin       5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17

# 说明:打印完第 5 行之后, q 让 sed 程序退出。

案例2

[root@Gin scripts]# sed '/Lewis/{ s/Lewis/Joseph/;q; }' ceshi.txt
northwest       NW      Charles Main    3.0     .98     3       34
western         WE      Sharon Gray     5.3     .97     5       23
southwest       SW      Joseph Dalsass  2.7     .8      2       18

# 说明:在某行匹配到模式 Lewis 时, s 表示先用 Joseph 替换 Lewis,然后 q 命令让 sed 退出。

image

posted on 2021-12-21 21:04  耿蜀黍  阅读(213)  评论(0编辑  收藏  举报