三剑客——sed常用用法

来源:互联网 发布:java excel jxl poi 编辑:程序博客网 时间:2024/05/16 12:58
基本sed用法举例:
插入行:sed '1i\ccccc' temp.txt           第一行插入
使用p显示行显示行: sed -n '2p' temp.txt   只显示第2行,使用选项n
打印范围:  sed -n '1,3p' temp.txt         打印第1行到第3行
打印模式:  sed -n '/movie/'p temp.txt     打印含movie的行
使 用模式和行号查询:  sed -n '3,/movie/'p temp.txt   只在第3行查找movie并打印
显示整个文件:  sed -n '1,$'p temp.txt       $为最后一行
任意字符:  sed -n '/.*ing/'p temp.txt     注意是.*ing,而不是*ing
删除文本: sed '1d' temp.txt  或者 sed '1,4d' temp.txt  删除1-4行
正则匹配:sed '/nologin$/d' /etc/passwd   ##删除以nologin结尾的行
替 换文本: sed 's/source/OKSTR/' temp.txt     将source替换成OKSTR
sed 's/\$//g' temp.txt                     将文本中所有的$符号全部删除
sed 's/source/OKSTR/w temp2.txt' temp.txt 将替换后的记录写入文件temp2.txt
替换修改字符串: sed 's/source/"ADD BEFORE" &/p' temp.txt 结果将在source字符串前面加上"ADD BEFORE",这里的&表示找到的source字符并保存
sed结果写入到文件: sed '1,2 w temp2.txt' temp.txt
sed '/name/ w temp2.txt' temp.txt
从文件中读文本: sed '/name/r temp2.txt' temp.txt
在每列最后加文本: sed 's/[0-9]*/& Pass/g' temp.txt
从 shell向sed传值: echo $NAME | sed "s/Go/$REP/g"   注意需要使用双引号
快速一行命令:
's/\.$//g'         删除以句点结尾行
'-e /abcd/d'       删除包含abcd的行
's/[][][]*/[]/g'   删除一个以上空格,用一个空格代替
's/^[][]*//g'      删除行首空格
's/\.[][]*/[]/g'   删除句号后跟两个或更多的空格,用一个空格代替
'/^$/d'            删除空行
's/^.//g'          删除第一个字符,区别  's/\.//g'删除所有的句点
's/COL/(...\)//g'  删除紧跟COL的后三个字母
's/^\///g'         删除路径中第一个\
原创粉丝点击