使用linux bash shell,我如何使用正则表达式来获取某个文件的字符串
通过示例:
for filename * .tgz 做
“获取特定的文件名字符串(在我的情况下,获取文件2010.01.12myfile.tgz的2010.04.12)”
完成
或者我应该转向perl
的Merci
坦率
答案 0 :(得分:1)
使用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
否则,您应该说明您的搜索条件。
答案 1 :(得分:1)
FILE=2010.01.12myfile.tgz
echo ${FILE:0:10}
给出
2010.01.12
答案 2 :(得分:0)
#!/bin/sh
a="2010.04.18Myfile.tgz"
echo ${a%%+([a-zA-Z.])}
bash'regexp非常强大(至少与标准sh或command.com相比: - ))