备忘几个有用的shell脚本

本文介绍如何在Linux环境下使用shell脚本进行批量文件操作,包括目录下的文件移动、重命名以及记录并后台运行进程。主要内容涵盖批量移动与重命名文件,以及如何在后台挂起并记录进程ID,方便后续管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  1. # 遍历 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

(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]$





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

[search@fsedump01sand tempshell]$ date -d '2015-12-01' +%s  
1448899200


   


转载于:https://my.oschina.net/yzbty32/blog/532013

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值