Chinaunix首页 | 论坛 | 博客
  • 博客访问: 367090
  • 博文数量: 83
  • 博客积分: 5322
  • 博客等级: 中校
  • 技术积分: 1057
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-11 11:27
个人简介

爱生活,爱阅读

文章分类

全部博文(83)

文章存档

2015年(1)

2013年(1)

2012年(80)

2011年(1)

分类: LINUX

2012-02-26 16:40:39

内容:

    1、选项与形式

    2、举例   

二、举例

       2.1.1、建立test.txt文件

  1. [admin@localhost sed]$ cat -n test.txt
  2. 1 ---------------------------------
  3. 2 abcc
  4. 3 CCCC@sohu.com
  5. 4 Test u:mondey
  6. 5 OctoberD
  7. 6 TTTT@gmail.com
  8. 7 October
  9. 8 r-truth
  10. 9 5456fdsgdfg889g
  11. 10 bigshow
  12. 11 EEEEE@sohu.com
  13. 12 magic per
  14. 13 DDDDD@gmail.com
  15. 14 perhaps
  16. 15 AAAAAA@sohu.com
  17. 16 AABBAA@gmail.com
  18. 17 AAAbbbCCC
  19. 18 END
  20. 19 ---------------------------------
  21. 20 Others
  22. [admin@localhost sed]$

          2.1.2、格式二查找,且存在模式(1.1.3\1.1.4):

  1. [admin@localhost sed]$
  2. [admin@localhost sed]$ sed -n '2,/sohu.com/p' test.txt
  3. abcc
  4. CCCC@sohu.com
  5. [admin@localhost sed]$ sed -n '3,/sohu.com/p' test.txt
  6. CCCC@sohu.com
  7. Test u:mondey
  8. OctoberD
  9. TTTT@gmail.com
  10. October
  11. r-truth
  12. 5456fdsgdfg889g
  13. bigshow
  14. EEEEE@sohu.com
  15. [admin@localhost sed]$ sed -n '4,/sohu.com/p' test.txt
  16. Test u:mondey
  17. OctoberD
  18. TTTT@gmail.com
  19. October
  20. r-truth
  21. 5456fdsgdfg889g
  22. bigshow
  23. EEEEE@sohu.com
  24. [admin@localhost sed]$ sed -n '16,/sohu.com/p' test.txt
  25. AABBAA@gmail.com
  26. AAAbbbCCC
  27. END
  28. ---------------------------------
  29. Others
  30. [admin@localhost sed]$

            2.1.3、格式二查找,且不存在模式(1.1.3\1.1.4):

  1. [admin@localhost sed]$
  2. [admin@localhost sed]$ sed -n '2,/UUUUUU/p' test.txt
  3. abcc
  4. CCCC@sohu.com
  5. Test u:mondey
  6. OctoberD
  7. TTTT@gmail.com
  8. October
  9. r-truth
  10. 5456fdsgdfg889g
  11. bigshow
  12. EEEEE@sohu.com
  13. magic per
  14. DDDDD@gmail.com
  15. perhaps
  16. AAAAAA@sohu.com
  17. AABBAA@gmail.com
  18. AAAbbbCCC
  19. END
  20. ---------------------------------
  21. Others
  22. [admin@localhost sed]$ sed -n '5,/UUUUUU/p' test.txt
  23. OctoberD
  24. TTTT@gmail.com
  25. October
  26. r-truth
  27. 5456fdsgdfg889g
  28. bigshow
  29. EEEEE@sohu.com
  30. magic per
  31. DDDDD@gmail.com
  32. perhaps
  33. AAAAAA@sohu.com
  34. AABBAA@gmail.com
  35. AAAbbbCCC
  36. END
  37. ---------------------------------
  38. Others
  39. [admin@localhost sed]$ sed -n '16,/UUUUUU/p' test.txt
  40. AABBAA@gmail.com
  41. AAAbbbCCC
  42. END
  43. ---------------------------------
  44. Others
  45. [admin@localhost sed]$
  46. [admin@localhost sed]$
  47. [admin@localhost sed]$ sed -n '30,/UUUUUU/p' test.txt
  48. [admin@localhost sed]$

            2.1.4、格式一查找,且存在模式(1.1.1\1.1.2):

  1. [admin@localhost sed]$
  2. [admin@localhost sed]$ sed -n '/sohu.com/,2p' test.txt
  3. CCCC@sohu.com
  4. EEEEE@sohu.com
  5. AAAAAA@sohu.com
  6. [admin@localhost sed]$
  7. [admin@localhost sed]$ sed -n '/sohu.com/,3p' test.txt
  8. CCCC@sohu.com
  9. EEEEE@sohu.com
  10. AAAAAA@sohu.com
  11. [admin@localhost sed]$ sed -n '/sohu.com/,4p' test.txt
  12. CCCC@sohu.com
  13. Test u:mondey
  14. EEEEE@sohu.com
  15. AAAAAA@sohu.com
  16. [admin@localhost sed]$
  17. [admin@localhost sed]$
  18. [admin@localhost sed]$ sed -n '/sohu.com/,16p' test.txt
  19. CCCC@sohu.com
  20. Test u:mondey
  21. OctoberD
  22. TTTT@gmail.com
  23. October
  24. r-truth
  25. 5456fdsgdfg889g
  26. bigshow
  27. EEEEE@sohu.com
  28. magic per
  29. DDDDD@gmail.com
  30. perhaps
  31. AAAAAA@sohu.com
  32. AABBAA@gmail.com
  33. [admin@localhost sed]$

         2.1.5、格式一查找,不存在模式(1.1.1\1.1.2)::

  1. [admin@localhost sed]$
  2. [admin@localhost sed]$ sed -n '/UUUUUU/,2p' test.txt
  3. [admin@localhost sed]$ sed -n '/UUUUUU/,3p' test.txt
  4. [admin@localhost sed]$ sed -n '/UUUUUU/,4p' test.txt
  5. [admin@localhost sed]$ sed -n '/UUUUUU/,16p' test.txt
  6. [admin@localhost sed]$

          2.1.6、将sed处理结果写入文件:

  1. [admin@localhost sed]$
  2. [admin@localhost sed]$ sed -n '1,6 w 1_6_test' test.txt
  3. [admin@localhost sed]$ cat 1_6_test
  4. ---------------------------------
  5. abcc
  6. CCCC@sohu.com
  7. Test u:mondey
  8. OctoberD
  9. TTTT@gmail.com
  10. [admin@localhost sed]$

       2.1.7、显示行号以及匹配项:

  1. [admin@localhost sed]$
  2. [admin@localhost sed]$
  3. [admin@localhost sed]$ sed -n -e '/sohu/p' -e '/sohu/=' test.txt
  4. CCCC@sohu.com
  5. 3
  6. EEEEE@sohu.com
  7. 11
  8. AAAAAA@sohu.com
  9. 15
  10. [admin@localhost sed]$
  11. [admin@localhost sed]$
  12. [admin@localhost sed]$
  13. [admin@localhost sed]$ sed -n -e '/sohu/p' test.txt
  14. CCCC@sohu.com
  15. EEEEE@sohu.com
  16. AAAAAA@sohu.com
  17. [admin@localhost sed]$

        2.1.8、在指定文本行进行字符串替换:

  1. [admin@localhost sed]$
  2. [admin@localhost sed]$ cat test.txt
  3. ---------------------------------
  4. abcc
  5. CCCC@sohu.com
  6. Test u:mondey
  7. OctoberD
  8. TTTT@gmail.com
  9. October
  10. r-truth
  11. 5456fdsgdfg889g
  12. bigshow
  13. EEEEE@sohu.com
  14. magic per
  15. DDDDD@gmail.com
  16. perhaps
  17. AAAAAA@sohu.com
  18. AABBAA@gmail.com
  19. AAAbbbCCC
  20. END
  21. ---------------------------------
  22. Others
  23. [admin@localhost sed]$ sed -n -e '1,7s/sohu/yahoo/gp' test.txt
  24. CCCC@yahoo.com
  25. [admin@localhost sed]$

-------------这里指明了在1--8行之间进行文本替换,将sohu替换为yahoo

           2.1.9、通过指定模式间接在匹配的文本行间进行字符串替换:

  1. [admin@localhost sed]$ cat -n test.txt
  2. 1 ---------------------------------
  3. 2 abcc
  4. 3 CCCC@sohu.com
  5. 4 Test u:mondey
  6. 5 OctoberD
  7. 6 TTTT@gmail.com
  8. 7 October
  9. 8 r-truth
  10. 9 5456fdsgdfg889g
  11. 10 bigshow
  12. 11 EEEEE@sohu.com
  13. 12 magic per
  14. 13 DDDDD@gmail.com
  15. 14 perhaps
  16. 15 AAAAAA@sohu.com
  17. 16 AABBAA@gmail.com
  18. 17 AAAbbbCCC
  19. 18 END
  20. 19 ---------------------------------
  21. 20 Others
  22. [admin@localhost sed]$
  23. [admin@localhost sed]$ sed -n -e '/^O/,/^END/s/\.com/\DOTCOM/p' test.txt
  24. TTTT@gmailDOTCOM
  25. EEEEE@sohuDOTCOM
  26. DDDDD@gmailDOTCOM
  27. AAAAAA@sohuDOTCOM
  28. AABBAA@gmailDOTCOM
  29. [admin@localhost sed]$

------------------如果指定的模式存在多处的话,情况就比较复杂,这个需要进一步测试验证……

           2.1.10、可以通过其他间隔符执行s///

如果模式中存在'/',一方面可以通过转移字符'\'进行处理,另外i可以通过":"进行代替:

  1. [admin@localhost sed]$ sed -e 's:/usr/local:/usr:g' test.txt

           2.1.11、去除贪婪

  1. [admin@localhost sed]$ cat perhaps.txt
  2. This is what I want!
  3. [admin@localhost sed]$
  4. [admin@localhost sed]$ sed -n 's/^<.*>//gp' perhaps.txt
  5. want!
  6. [admin@localhost sed]$
  7. [admin@localhost sed]$ sed -n 's/<[^>]*>//gp' perhaps.txt
  8. This is what I want!
  9. [admin@localhost sed]$

            2.1.12、运用转义字符+()

  1. [admin@localhost sed]$ cat just.txt
  2. aa;bb;cc;dd
  3. [admin@localhost sed]$
  4. [admin@localhost sed]$
  5. [admin@localhost sed]$ sed -n -e 's/\(.*\);\(.*\);\(.*\);\(.*\)/AA\1,\2,CC\3,\4/gp' just.txt
  6. AAaa,bb,CCcc,dd
  7. [admin@localhost sed]$

          2.1.13、应用大括号{}

 

  1. [admin@localhost sed]$
  2. [admin@localhost sed]$ cat -n test.txt
  3. 1 ---------------------------------
  4. 2 abcc
  5. 3 CCCC@sohu.com
  6. 4 Test u:mondey
  7. 5 OctoberD
  8. 6 TTTT@gmail.com
  9. 7 October
  10. 8 r-truth
  11. 9 5456fdsgdfg889g
  12. 10 bigshow
  13. 11 EEEEE@sohu.com
  14. 12 magic per
  15. 13 DDDDD@gmail.com
  16. 14 perhaps
  17. 15 AAAAAA@sohu.com
  18. 16 AABBAA@gmail.com
  19. 17 AAAbbbCCC
  20. 18 END
  21. 19 ---------------------------------
  22. 20 Others
  23. [admin@localhost sed]$
  24. [admin@localhost sed]$
  25. [admin@localhost sed]$ sed -n -e '1,12{s/sohu/yahoo/g p;s/gmail/hotmail/g p}' test.txt
  26. CCCC@yahoo.com
  27. TTTT@hotmail.com
  28. EEEEE@yahoo.com
  29. [admin@localhost sed]$

 

 

 

 

 

 

 

阅读(639) | 评论(0) | 转发(0) |
0

上一篇:sed学习整理(一)

下一篇:Linux下login/shell

给主人留下些什么吧!~~