shell-sed命令

发布时间 2023-09-23 20:12:36作者: ~技术小白

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、直接修改文件的内容