LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 8092|回复: 4

sed/awk与unix命令等价代码欣赏

[复制链接]
发表于 2004-5-18 19:29:15 | 显示全部楼层 |阅读模式
转自: www.chinaunix.net 特此感谢
sed与unix 命令等价代码
特此感谢转贴者:admirer

  1. -------------------------------------------------------------------------------
  2. cat            |  sed ':'
  3. cat -s         |  sed '/./,/^$/!d'
  4. tac            |  sed '1!G;h;$!d'
  5. grep           |  sed '/patt/!d'
  6. grep -v        |  sed '/patt/d'
  7. head           |  sed '10q'
  8. head -1        |  sed 'q'
  9. tail           |  sed -e ':a' -e '$q;N;11,$D;ba'
  10. tail -1        |  sed '$!d'
  11. tail -f        |  sed -u '/./!d'
  12. cut -c 10      |  sed 's/\(.\)\{10\}.*/\1/'
  13. cut -d: -f4    |  sed 's/\(\([^:]*\):\)\{4\}.*/\2/'
  14. tr A-Z a-z     |  sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
  15. tr a-z A-Z     |  sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
  16. tr -s ' '      |  sed 's/ \+/ /g'
  17. tr -d '\012'   |  sed 'H;$!d;g;s/\n//g'
  18. wc -l          |  sed -n '$='
  19. uniq           |  sed 'N;/^\(.*\)\n\1$/!P;D'
  20. rev            |  sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
  21. basename       |  sed 's,.*/,,'
  22. dirname        |  sed 's,[^/]*$,,'
  23. xargs          |  sed -e ':a' -e '$!N;s/\n/ /;ta'
  24. paste -sd:     |  sed -e ':a' -e '$!N;s/\n/:/;ta'
  25. cat -n         |  sed '=' | sed '$!N;s/\n/ /'
  26. grep -n        |  sed -n '/patt/{=;p;}' | sed '$!N;s/\n/:/'
  27. cp orig new    |  sed 'w new' orig[/code:1:739eb4cef5]
  28. -------------------------------------------------------------------------------
复制代码

awk与unix 命令等价代码
特此感谢作者:飞灰橙

  1. -------------------------------------------------------------------------------
  2. cat            |awk '{print}'
  3. cat -s         |awk '{blank = NF == 0 ? ++blank : 0; if (blank <= 1) print;}'
  4. tac            |awk '{t[NR] = $0;}END{for (i = NR; i >= 1; i--) print t[i];}'
  5. grep patten    |awk '/patten/{print}'
  6. grep -v patten |awk '! /patten/{print}'
  7. head           |awk 'NR <= 10 {print}' 24.sh
  8. head -1        |awk '{print; exit; }' 24.sh
  9. tail           |awk '{t[n++ % 10] = $0}END{for (i = 0; i < 10; i++) print t[n++ % 10];}'
  10. tail -1        |awk '{t = $0}END{print t}'
  11. cut -c 10      |awk '{print substr($0, 10, 1)}'
  12. cut -d: -f4    |awk -F: '{if (NF > 1) print $4; else print;}'
  13. tr A-Z a-z     |awk '{print tolower($0);}' se.sh
  14. tr a-z A-Z     |awk '{print toupper($0);}' se.sh
  15. tr -s ' '      |awk '{print gensub(" +", " ", "g")}'
  16. tr -d '\012'   |awk '{printf "%s", $0}'
  17. wc -l          |awk 'END{printf "% 7d\n", NR-1}'
  18. uniq           |awk '{if (NR == 1 || ln != $0) print; ln = $0;}'
  19. rev            |awk '{l = ""; for (i = length($0); i > 0; i--) printf "%c", substr($0, i, 1); print "";}'
  20. basename       |awk -F'/' '{print $NF}'
  21. dirname        |awk -F'/' '{if (NF <= 1) printf "."; else {OFS="/"; $NF=""; printf "%s", substr($0, 1, length($0) - 1);}}'
  22. xargs          |awk '{printf "%s ", $0}END{print}'
  23. paste -sd:     |awk 'NR > 1{printf ":%s", $0}'
  24. cat -n         |awk '{printf "% 6d  %s\n", NR, $0}'
  25. grep -n        |awk '/ss/{print NR":"$0}'
  26. cp orig new    |awk '{print > "new"}' orig
  27. -------------------------------------------------------------------------------
复制代码
发表于 2004-5-19 08:23:53 | 显示全部楼层
Very Coooool! 谢谢javalee兄!
发表于 2004-8-23 14:48:11 | 显示全部楼层
谢谢,非常的好!
发表于 2004-8-23 18:14:42 | 显示全部楼层
第一部分在sed的info里就有
info sed, m examples
发表于 2005-3-12 13:05:26 | 显示全部楼层
强~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表