sed
概述:按照每行中的字符串进行操作处理。可以修改调整删除。
具体功能:
1、文中添加信息的能力
2、文中删除信息的能力
3、文中查询信息的能力
4、文中修改信息的能力
参数
-n 寂静模式
-i 直接编辑源文件
-r 扩展正则
d 删除匹配到的行
a append 在指定信息后面附加信息
c 替换修改指定的一行信息
sed语法格式
sed 参数 条件+处理 处理的文件信息
sed -n ‘/oldboy/p’ oldboy.txt
-n 寂静模式(抑制执行过程中的冗余信息)
p 打印匹配行
一、擦寻信息方法
创建测试环境:
cat >person.txt<<EOF
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
EOF
显示单行信息
sed -n ‘3p’ person.txt
103,Alex,COO
根据行号信息,输出多行内容(连续)
sed -n ‘1,3p’ person.txt
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
根据行号,不连续输出信息
sed -n ‘1p;3p’ person.txt
根据文件内容进行查询
查找oldboy行
sed -n ‘/oldboy/p’ person.txt
连续输出哪一行到哪一行
sed -n ‘/oldboy/,/alex/p’ person.txt
将所有有关oldboy和alex的信息输出
sed -n ‘/oldboy/p;/alex/p’ person.txt
二、添加信息方法
在文件的第一行添加信息100,oldboy,UFO
sed ‘1i100,oldboy,UFO’ person.txt
在文件的最后一行添加108,oldgirl,UFO
sed ‘$a108,oldgirl,UFO’ person.txt
在文件第三行后面添加oldboy.txt
sed ‘3aoldboy.txt’ person.txt
在文件第二行前面添加oldboy.txt
sed ‘2ioldboy.txt’ person.txt
在有oldboy前面添加oldgirl后面添加olddog
sed -e ‘/oldboy/ioldgirl’ -e ‘/oldboy/aolddog’ person
在文件中添加多行信息
sed ‘$a100\n101’ person.txt
\n:回车
三、删除信息方法
删除第三行
sed ‘3d’ person.txt
连续删除多行信息(删除3~6行信息)
sed ‘3,6d’ person.txt
删除带有oldboy的信息
sed ‘/oldboy/d’ person.txt
不连续删除多行信息(只删除第三行和第六行)
sed ‘3d;6d’ person.txt
取消空行显示
sed -n ‘/$^/!p’ person.txt
sed -n ‘/$^/d’ person.txt
四、修改信息的能力
sed ‘s#原有内容#要修改成什么#g’
修改扩展名
ls oldboy*.txt|sed -r ‘s#(.*)txt#mv & \1jpg#g’
& 表示使用前面用到的oldboy*.txt
\1 表示使用前面用到的oldboy*.
替换指定一行信息
sed ‘2coldboyedu -sz-01’ person.txt
将第二行替换为coldboyedu -sz-01
使用sed命令创建10个用户
echo oldboy{01..10}|xargs -n1|sed -r 's#(.*)#useradd \1#g'|bash
使用sed命令创建10个用户并且设置密码
seq -w 10|sed -r 's#(.*)#useradd oldboy\1;echo 123456|passwd --stdin oldboy\1#g'