本文主要是介绍备忘几个有用的shell脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
(1)在shell下,操作hadoop目录,批量命名或删除,最终的命令sed的正则贪婪替换,看下面的脚本:- # 遍历 hadoop 目录下的文件名
- for line in `hadoop fs -ls /user/d1 | gawk '{ print $8 }' `
- do
- #echo $line;
- #将2级目录下的文件,移动到上一级
- #hadoop fs -mv $line"/tmp_search_keywords_cate_stat/*" $line ;
- #删除2级目录
- #hadoop fs -rm -r $line"/tmp_search_keywords_cate_stat"
- for line2 in `hadoop fs -ls $line | gawk '{ print $8 }' `
- do
- echo $line2 ;
- #将/tmp/a/b 使用sed变成/tmp/a_b 注意下面的正则式子
- newname=`echo $line2 | sed -e 's/\(.*\)\//\1_/' ` ;
- #echo $newname;
- hadoop fs -mv $line2 $newname
- done
- done
# 遍历 hadoop 目录下的文件名for line in `hadoop fs -ls /user/d1 | gawk '{ print $8 }' `
do#echo $line; #将2级目录下的文件,移动到上一级
#hadoop fs -mv $line"/tmp_search_keywords_cate_stat/*" $line ;
#删除2级目录
#hadoop fs -rm -r $line"/tmp_search_keywords_cate_stat"for line2 in `hadoop fs -ls $line | gawk '{ print $8 }' `doecho $line2 ;#将/tmp/a/b 使用sed变成/tmp/a_b 注意下面的正则式子newname=`echo $line2 | sed -e 's/\(.*\)\//\1_/' ` ;#echo $newname;hadoop fs -mv $line2 $newname
done
done
(2)记录当前启动的进程id,并以后台方式挂起运行,脚本例子如下:
- [search@fse4 solr]$ cat start.sh
- #下面的代码,将当前启动的上次启动的进程id记录下来
- #方便关闭时,kill掉
- #$$记录当前的进程id,$!记录上次启动的进程id
- #nohup 是后台挂起线程方式运行,并将日志文件输出到nohup.out里面,进行监控
- nohup java -jar start.jar &> nohup.out & echo $! >pid&
- #echo $$ > pid
- [search@fse4 solr]$
[search@fse4 solr]$ cat start.sh #下面的代码,将当前启动的上次启动的进程id记录下来
#方便关闭时,kill掉#$$记录当前的进程id,$!记录上次启动的进程id
#nohup 是后台挂起线程方式运行,并将日志文件输出到nohup.out里面,进行监控
nohup java -jar start.jar &> nohup.out & echo $! >pid&#echo $$ > pid
[search@fse4 solr]$
(3)linux下,将字符串日期,格式化为时间戳:
- [search@fsedump01sand tempshell]$ date -d '2015-12-01' +%s
- 1448899200
这篇关于备忘几个有用的shell脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!