繁体   English   中英

我如何使用正则表达式来获取文件的特定字符串

[英]how can i use regex to get a certain string of a file

使用linux bash shell时,如何使用正则表达式获取文件的特定字符串

例如:

对于文件名* .tgz

“获取文件名的特定字符串(以我为例,获取文件2010.01.12myfile.tgz的2010.04.12)”

DONE

还是我应该转向perl

留言Merci

坦率

使用bash,在最简单的情况下,如果您知道要获取的是日期戳,则可以使用shell扩展

#!/bin/bash

for file in 20[0-9][0-9].[01][0-9].[0-9][0-9]*tgz
do
 echo $file
done

否则,如果它在第一个字母之前

for file in *tgz
do
 echo ${file%%[a-zA-Z]*}
done

否则,您应该阐明搜索条件。

FILE=2010.01.12myfile.tgz

echo ${FILE:0:10}

2010.01.12
#!/bin/sh
a="2010.04.18Myfile.tgz"
echo ${a%%+([a-zA-Z.])}

bash的regexp非常强大(至少与标准sh或command.com:-相比)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM