当前位置: 技术问答>linux和unix
小弟刚接触shell,想做一个程式,但是难在正则表达式了, 请大侠帮忙看看。
来源: 互联网 发布时间:2016-06-11
本文导语: 我手写一个shell做练习。 就是查找一个目录下的最新修改的文件, 然后copy到另外一个目录。 调用 第一个参数 也就是查找的目录, $1 第二个是查找几分钟内修改的文件 $2 第三个...
我手写一个shell做练习。
就是查找一个目录下的最新修改的文件, 然后copy到另外一个目录。
调用
第一个参数 也就是查找的目录, $1
第二个是查找几分钟内修改的文件 $2
第三个是要copy过去的目录 $3
#./test.sh /home/user/shell/test 60 /home/user/shell/test_bak
谢谢大家了。
就是查找一个目录下的最新修改的文件, 然后copy到另外一个目录。
调用
第一个参数 也就是查找的目录, $1
第二个是查找几分钟内修改的文件 $2
第三个是要copy过去的目录 $3
#./test.sh /home/user/shell/test 60 /home/user/shell/test_bak
#! /bin/sh
find $1 -iregex ".*.(txt|doc)" -mmin $2 > .temp
for $i in `cat .temp`
do
echo $i
done
#这里打印了很多找到的文件
#/home/user/shell/test/oooo/abcde/dsfsf.txt
#/home/user/shell/test/dddd/dddd/dddd.doc
#/home/user/shell/test/bbbb/xxxxx/ccccc.txt
for $i in `cat .temp`
do
#这里对正则匹配不懂, 忘大侠帮我看看这里怎么写。
#主要做的就是取得每条结果的路径。 定义为$targetPath
#比如: 第一个就是 /oooo/abcde/ 第二个就是 /dddd/dddd/ 第三个就是 /bbbb/xxxxx/
#还有取得每条结果的文件名 定义为 $targetName
#比如: 第一个就是 dsfsf.txt 第二个就是 dddd.doc 第三个就是 ccccc.txt
cp $i $3/$targetPath“/bak/”$targetName".bak"
done
谢谢大家了。
|
你这个是Python,但为什么变量前加$,在Python中可以吗?
如果是在Perl中,$1,$2,$3, $a, $b都是不可以使用的,因为它们都是预定义变量。
如果是在PHP中,语法...
反正看起来挺乱的。下面是概念证明代码,Python3
i = "/home/user/shell/test/oooo/abcde/dsfsf.txt"
import re
pat = "/home/user/shell/test((?:/w+)+/)([w.]*)"
m = re.search(pat,i)
if ( m != None ):
print("target path: ",m.group(1))
print("target name: ",m.group(2))
结果为
target path: /oooo/abcde/
target name: dsfsf.txt
|
不知道我有没有理解错lz的意思
[root@RHEL4_U5 network-scripts]# dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts
[root@RHEL4_U5 network-scripts]# basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0
[root@RHEL4_U5 network-scripts]# dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts
[root@RHEL4_U5 network-scripts]# basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。