mkextract 435 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/bin/rc
  2. switch($#*){
  3. case [012]
  4. echo usage: mkextract [-u] field n file... >[1=2]
  5. exit 1
  6. }
  7. switch($1){
  8. case -u
  9. flag=$1; shift
  10. case *
  11. flag=''
  12. }
  13. field=$1
  14. n=$2
  15. shift 2
  16. fn select {
  17. awk '
  18. BEGIN { doprint=0 }
  19. /^$/ { next }
  20. /^#/ { next }
  21. doprint && /^[^ ]/ { doprint=0 }
  22. doprint { print $'^$n^' }
  23. $1 ~ "^'^$field^'$" { doprint=1; next }
  24. ' $*
  25. }
  26. switch($flag){
  27. case -u
  28. select $* | sort -u
  29. case *
  30. select $*
  31. }