shell sed 命令

sed:Stream Editor文本流编辑,可以处理多个文件多行的内容。

格式:sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...

选项参数:

  -n :只打印模式匹配的行
  -e :直接在命令行模式上编辑,此为默认选项
  -f :文件操作,用 –f filename 执行filename内的sed动作
  -r :支持扩展表达式
  -i :直接修改文件内容

常用命令参数:
  p : 打印,可以打印某一行,或者多行
  d : 删除,可以删除一行,多行
  s : 替换,用于字符替换。 如: s/kimbo/kim/g
  a : 追加,指定行的 下一行
   i : 插入,指定行的 上一行

 

替换or删除:

  s/查找的字符/替换的字符/g   (g:表示全局,全部替换。不加,默认只替换一次。),查找的字符串 可以使用正则表达式。

sed 's/kimbo/zhang/g' kimbo_test.txt        #将文件中的kimbo都替换成zhang

sed 's/[ \t]//g' kimbo_test.txt        #将文件中的空格、tab删除 ,并不改变文件内容。

sed -i 's/[ \t]//g' kimbo_test.txt        #将文件中的空格、tab删除 ,改变文件内容。

 

例子1:

#1. 打印第二行
sed -n '2p' kimbo_test.sh
#2. 打印第二行,第三行
sed -n '2,3p' kimbo_test.sh
#3. 打印匹配"kevi"的行
sed -n '/kevi/p' kimbo_test.sh
#4. 打印匹配"kevi"的行,到第三行
sed -n '/kevi/,3p' kimbo_test.sh
#5.  打印不匹配"kevi"的行
sed -n '/kevi/!p' kimbo_test.sh

#5.删除匹配"kevi"的行,输出其他行
cat kimbo_test.sh |sed -e '/kevi/d'

#5. 删除所有空行
cat kimbo_test.sh |sed -e '/^$/d'
#6.保留第3行之后的非空行
cat kimbo_test.sh |sed -e '3,/^$/!d;/^$/d'


#p --print 打印;d --delete 删除

结果截图:

 

posted @ 2017-06-13 20:20  Kimbo  阅读(1005)  评论(0编辑  收藏  举报