1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#1. 查询信息方法(根据行号查询,根据信息查询)
#测试环境:
cat >person.txt<<EOF
101,Charles,CEO
102,Mandy,CTO
103,Mary,COO
104,Alice,CFO
EOF
sed -n '3p' person.txt
sed -n '1,3p' person.txt
sed -n '1p;3p' person.txt
sed -n '/Charles/p' person.txt
sed -n '/Charles/,/Mary/p' person.txt
sed -n '/Charles/p;/Mary/p' person.txt
#2. 添加信息方法
sed '1i100,oldgirl,UFO' person.txt
sed -i '1i100,oldgirl,UFO' person.txt
sed '$a108,oldgirl,UFO' person.txt
p #print,输出信息
i #insert,插入信息,在指定信息前
a #append,附加信息,在指定信息后面
d #delete,删除指定信息
s #substitute,替换
c #替换修改制定的一整行信息
-n #取消默认输出
-r #识别扩展正则
-i #真是编辑文件,将内存信息写入磁盘
-e #识别sed命令多个操作指令
ps #n和i参数同时使用会将文件内容清空
sed -e '/oldboy/ioldgirl' -e '/oldboy/aolddog' person.txt
sed '$a100\n101' person.txt
#3. 删除信息方法
sed '3d' person.txt
sed '2,6d' person.txt
sed '/oldboy/d' person.txt
sed '3d;6d' person.txt
sed '/^$/d' person.txt #删除空行
#4. 修改信息方法
sed 's#test#test2#g' 文件信息
ip a s eth0 | sed -n '3p' | sed -r 's#^.*net(.*)/24.*#\1#g'
ip a s eth0 | sed -rn '3s#^.*net(.*)/24.*#\1#gp'
sed -i.bak 's#test#test2#g' person.txt #在修改的同时生成一个person.txt.bak的备份文件
ls oldboy*.txt | sed -r 's#(.*)txt#mv & \1jpg#g' | bash #批量修改拓展名
rename .jpg .txt oldboy*.jpg #批量修改拓展名
|