备忘几个有用的shell脚本

(1)在shell下,操作hadoop目录,批量命名或删除,最终的命令sed的正则贪婪替换,看下面的脚本:

Java代码 技术分享 技术分享技术分享
  1. # 遍历 hadoop 目录下的文件名   
  2.   
  3. for line in `hadoop fs -ls /user/d1 | gawk ‘{ print $8 }‘ `   
  4. do  
  5.   
  6. #echo $line;      
  7.   
  8. #将2级目录下的文件,移动到上一级   
  9. #hadoop fs -mv $line"/tmp_search_keywords_cate_stat/*"  $line ;   
  10. #删除2级目录   
  11. #hadoop fs   -rm -r  $line"/tmp_search_keywords_cate_stat"  
  12.   
  13. for line2 in `hadoop fs -ls $line  | gawk ‘{ print $8 }‘   `   
  14.   
  15. do  
  16.   
  17. echo $line2 ;   
  18.   
  19. #将/tmp/a/b 使用sed变成/tmp/a_b 注意下面的正则式子   
  20.   
  21. newname=`echo $line2 | sed -e ‘s/\(.*\)\//\1_/‘ ` ;   
  22.   
  23.   
  24. #echo $newname;   
  25.   
  26. hadoop fs -mv $line2   $newname   
  27. done   
  28. done  



(2)记录当前启动的进程id,并以后台方式挂起运行,脚本例子如下:

Java代码 技术分享 技术分享技术分享
  1. [search@fse4 solr]$ cat start.sh    
  2.   
  3. #下面的代码,将当前启动的上次启动的进程id记录下来   
  4. #方便关闭时,kill掉   
  5.   
  6. #$$记录当前的进程id,$!记录上次启动的进程id   
  7. #nohup 是后台挂起线程方式运行,并将日志文件输出到nohup.out里面,进行监控    
  8. nohup java -jar start.jar  &> nohup.out &  echo $! >pid&   
  9.   
  10. #echo $$ > pid   
  11. [search@fse4 solr]$   



(3)linux下,将字符串日期,格式化为时间戳:

Java代码 技术分享 技术分享技术分享
  1. [search@fsedump01sand tempshell]$ date -d ‘2015-12-01‘ +%s   
  2. 1448899200  
  3.    

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。