Chinaunix首页 | 论坛 | 博客
  • 博客访问: 793348
  • 博文数量: 180
  • 博客积分: 4447
  • 博客等级: 上校
  • 技术积分: 1582
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-03 14:51
文章分类

全部博文(180)

文章存档

2014年(6)

2013年(8)

2011年(125)

2009年(35)

2008年(1)

2007年(5)

分类: LINUX

2011-01-06 22:08:16

  1. 已经是第一篇
  2. 下一篇:linux cat 命令详...
  3. |返回日志列表
  4. SHELL脚本技巧精选(chinaunix)更新。。。 分享 复制地址 日志地址:

  5. 请用Ctrl+C复制后贴给好友。

  6. LinuxBoy 2009年12月29日 10:57 阅读(24) 评论(0) 分类:LINUXSHELL 权限: 公开
  7. 字体:大▼ 小 中 大 更多▼ 设置置顶 权限设置 推荐日志 转为私密日志 删除编辑


  8. 1.

  9. A文件内容:
  10. 10|50
  11. 11|51
  12. 12|52
  13. 13|53
  14. 14|54
  15. 15|55
  16. 16|56
  17. 17|57
  18. 18|58
  19. 19|59
  20. 20|60
  21. 21|61
  22. 22|62
  23. 23|63
  24. 24|64
  25. 25|65
  26. 26|66
  27. 27|67
  28. 28|68
  29. 29|69

  30. B文件内容:
  31. 15|55
  32. 23|63
  33. 27|67
  34. 13|53

  35. 现要将A文件中删除相关行,所删除的行为B文件中的内容
  36. 实际文件的大小可能较大,上百万或上千万行,所以需要找一种效率较高的方法,请大家看看有没什么其他好办法



  37. grep -x -v -F -f B A

  38.  -F, --fixed-strings
  39.               Interpret PATTERN as a list of fixed strings, separated by new-
  40.               lines, any of which is to be matched.

  41.        -f FILE, --file=FILE
  42.               Obtain patterns from FILE, one per line. The empty file con-
  43.               tains zero patterns, and therefore matches nothing.
  44.        -x, --line-regexp
  45.               Select only those matches that exactly match the whole line.



  46. sort A B|uniq -u

  47. 这个方法可能会改变原始文件的顺序





  48. 1.cp -a 命令可以保持文件属性
  49. -a:保留链接,文件属性,并递归地拷贝目录,其作用等于-dpr选项的组合。

  50. 2.去掉每行最后一个字符
  51. sed 's/.$//' a.txt
  52. awk '{sub(/.$/,"")}1'
  53. awk '{print substr($0,1,length($0)-1)}'
  54. awk 'BEGIN{FS=OFS=""}NF--'

  55. 3.使用:和\作为分隔符
  56. 123:345:67\ab\dd\ee\ff\gg
  57. awk -F '[:\\\\]' '{print $4}'urfile

  58. 4.生成连续的数用逗号进行分割
  59. seq -s , 10000 20000

  60. 5.使用write user [ttyname]可以与其他的用户进行通信

  61. 6.查看oracle安装的组建
  62. SQL> set linesize 10000
  63. SQL> set pagesize 10000
  64.  select * from v$options;

  65. 7.查看正在使用的组建

  66. select comp_id,comp_name,version,status from dba_registry;

  67. 8.查看oracle参数
  68. show parameter


  69. 9.查看非默认参数
  70. select name,value from v$parameter where isdefault='FALSE';

  71. 10.
  72. 10.备份及查看oracle10g控制文件
  73. 1)执行alter database backup controlfile to trace;
  74. 2)到udump目录找最新的trace文件,中sql

  75. 11.查看归档日志
  76. archive log list

  77. 12.SUN OS 查看包信息的命令
  78. pkginfo -i 包名

  79. 13.SUNOS 包安装
  80. pkgadd -d 目录 包名

  81. 14.stty erase ^h
  82. 按del可以正常

  83. 15.nolog方式登录sqlplus
  84. sqlplus /nolog
  85. conn /as sysdba
  86. disconn

  87. 16.sqlplus 技巧
  88. list 或l 显示上次输入的命令
  89. run 或 / 执行上次输入的命令,run显示命令,而/不显示命令
  90. save /tmp/1.sql 把buffer中的sql保存到1.sql
  91. 显示所有sqlplus 命令 :help index
  92. set serveroutput on 可以显示pl/sql回显
  93. show user 看看当前用户
  94. pause 是否支持暂停 set pause on
  95. set pause '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'


  96. 17.直接切换到指定用户的crondtab 下面
  97. crontab -e -u oracle
  98. crontab -l -u oracle (显示指定用户的crondtab)

  99. 18.at 命令在5小时后执行
  100. at `date +%H:%I -d "+5 hour"`

  101. 19.diff的命令说明
  102. 字母a、d和c分别表示附加、删除和修改操作。
  103. >表示减去的内容 <表示增加的内容
  104. + 比较的文件的后者比前着多一行
  105. - 比较的文件的后者比前着少一行
  106. ! 比较的文件两者有差别的行

  107. 20.建立用户的sql

  108. -- Create the user
  109. create user LINUXBOY
  110.   identified by "linuxboy"
  111.   default tablespace USERS
  112.   temporary tablespace TEMP
  113.   profile DEFAULT;
  114. -- Grant/Revoke role privileges
  115. grant connect to LINUXBOY;
  116. grant dba to LINUXBOY;
  117. grant resource to LINUXBOY;
  118. -- Grant/Revoke system privileges
  119. grant unlimited tablespace to LINUXBOY;

  120. 21.计算时间间隔
  121. SELECT date_time, EXTRACT(day FROM (SYSDATE - date_time) DAY TO SECOND)
  122.    || ' days '
  123.    || EXTRACT(day FROM (SYSDATE - date_time) DAY TO SECOND )
  124.    || ' hours' "Interval"
  125. FROM date_test1 ;

  126. 22.expdp中exclude参数的使用
  127. --导出但是不到处TEST3,TEST2
  128.  expdp linuxboy/linuxboy directory=dump ESTIMATE=blocks dumpfile=6.dmp EXCLUDE=TABLE:"IN('TEST3'\,'TEST2')"

  129. 23.awk求和

  130. 13946829009 密山 太平 永安 0.05 0.07 8.88
  131. 13555462088 密山 太平 永安 0.10 0.80 4.46
  132. 13836549009 密山 太平 永安 0.80 0.06 320.01
  133. 13946830983 鸡西 太平 永安 0.75 0.80 80.80
  134. 13946829009 鸡东 太平 永安 1.58 0.03 17.80


  135. 另外我还想请教个问题,是否可以实现对刚才这个文件,某一列进行汇总,例如

  136. 对第二列进行汇总,5,6,7列求和,
  137. 也就是说按第二列里的内容,对其在5,6,7列里的值求和.

  138. 显示结果:

  139. 密山 x元 x元 x元
  140. 鸡西 x元 x元 x元
  141. 鸡东 x元 x元 x元


  142. ex1:
  143. awk '{b[$2];a[$2,1]+=$5;a[$2,2]+=$6;a[$2,3]+=$7;}END{for(i in b)print i "\t" a[i,1] "\t" a[i,2] "\t" a[i,3]}' urfile


  144. ex2:
  145.  awk '{a[$2]+=$5;b[$2]+=$6;c[$2]+=$7}END{for (i in a) print i,a[i],b[i],c[i]}' urfile


  146. 24.替换成其他字符

  147. 是这样的,假设有一个文件,有如下内容:
  148. .........
  149. NUM=1
  150. ..........
  151. NUM=1
  152. ...........
  153. NUM=1
  154. ...........
  155. NUM=1
  156. ...........
  157. NUM=1

  158. 其中......为忽略掉的行,有没有办法将NUM的值改变成如下的值?
  159. NUM=0
  160. ..........
  161. NUM=1
  162. ...........
  163. NUM=2
  164. ...........
  165. NUM=3
  166. ...........
  167. NUM=4

  168. 请高手指点



  169. awk '/NUM=/{sub(/1/,i++)}1' urfile

  170. 25.grep 时候显示颜色
  171. grep -color "name" 1.txt

  172. 26.sed替换
  173. 比如
  174. ls -d */ | sed ....
  175. 添加前缀。

  176. 如果ls -d */输出如下:

  177. app// dce1ru// lcdc3-diag// n7k-lc1-diag// supdc3-cy-diag//
  178. common// export// lcdce-diag// supdc3-cmp-diag//

  179. 我要求输出如下:
  180. xxxx/app// xxx/dce1ru// 等等

  181. ls -d */|sed 's/.*\//xxx\/&\//'

  182. 27.查看系统中究竟有哪些shell?
  183. cat /etc/shells

  184. 28.grep的color选项
  185.   --colour[=WHEN], --color[=WHEN]
  186.               Surround the matching string with the marker find in GREP_COLOR environment variable. WHEN may be
  187.               'never', 'always', or 'auto'

  188. grep --color 'a' test.sh

  189. 这时候 'a'会以红色的来显示出来
  190. 也可以通过定义 GREP_COLOR 变量设置颜色
  191. 30 black
  192. 31 red
  193. 32 green
  194. 33 yellow
  195. 34 blue
  196. 35 purple
  197. 36 cyan
  198. 37 white
  199. [root@linux tmp]# GREP_COLOR=32
  200. [root@linux tmp]# export GREP_COLOR


  201. 29.大家好,问问有没有这样的 shell 命令。

  202.    大家都知道时间,假设自 1970年1月1日以来 的描述 = 1234567890

  203.    有没有 shell 命令可以转换成 2010-03-24-14:02:45 ?

  204. [root@test250 ~]# date -d "@1234567890"
  205. 2009年 02月 14日 星期六 07:31:30 CST


  206. 30.例如:文件test内容如下:
  207. aaa = test1, test2
  208. bbb = acd, bacd
  209. ccc = 123, 12345

  210. 需要在匹配‘bbb = ’ 的行尾追加字符串‘, abcdefg’

  211. aaa = test1, test2
  212. bbb = acd, bacd, abcdefg
  213. ccc = 123, 12345


  214.  sed '/bbb =/ s/$/,abcdef/' urfile

  215.  sed -e 's/^bbb.*/&,abcdefg/g' urfile
阅读(1427) | 评论(0) | 转发(0) |
0

上一篇:MERGE语法

下一篇:VSFTP文件与目录

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