shell-sed命令
sed
sed主要是用来将数据进行选取、替换、删除、新增的命令
sed [选项] [动作] 文件名
选项:
-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择则只会把经过sed命令处理的行输出到屏幕
-e:允许对输入数据应用多条sed命令编辑
-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
动作:
-a:追加,在当前行后添加一行或多行
-c:行替换,用c后面的字符串替换原数据行
-i:插入,在当期行前插入一行或多行。d:删除,删除指定的行
-p:打印,输出指定的行
-s:字符替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g” (和vim中的替换格式类似)
1、打印某行
sed -n 'n'p filename 单引号内的n是一个数字,表示第几行:
例如:sed -n '2'p /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
2、 打印包含某个字符串的行
例如:sed -n '/root/'p test.txt
operator:x:11:0:operator:/root:/sbin/nologin
3、-e可以实现多个行为
例如:sed -e '1'p -e '/111/'p -n test.txt
rot:x:0:0:/rot:/bin/bash
1111111111111111111111111111111
4、删除某行或多行
sed '1,2s/ot/to/g' test.txt
rto:x:0:0:/rto:/bin/bash operator:x:11:0:operator:/roto:/sbin/nologin operator:x:11:0:operator:/rooot:/sbin/nologin roooot:x:0:0:/rooooot:/bin/bash 1111111111111111111111111111111 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5、替换字符或字符串
6、调换两个字符串的位置
7、直接修改文件的内容