选择文本字符串

发布于 2024-08-26 04:29:43 字数 176 浏览 6 评论 0原文

ABCDchinchwad18-Mar-2010-11.sql.zip

ABCDsolapur18-Mar-2010-10.sql.zip

如何查找“ABCD”和日期“18-Mar-2010”之间的字符串

预期结果:

chinchwad

solapur

ABCDchinchwad18-Mar-2010-11.sql.zip

ABCDsolapur18-Mar-2010-10.sql.zip

How do I find the string between "ABCD" and the date "18-Mar-2010"

Expected resuts:

chinchwad

solapur

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

墨落画卷 2024-09-02 04:29:43
for file in ABCD*zip
do
  file="${file/#ABCD/}"
  echo ${file%%[0-9][0-9]-*-*}
done

或使用 sed

ls ABCD*zip | sed 's/^ABCD//;s/[0-9][0-9]-.*-.*//'

或使用 awk

ls ABCD*zip | awk -F"[0-9][0-9]-|ABCD" '{print $2}'
for file in ABCD*zip
do
  file="${file/#ABCD/}"
  echo ${file%%[0-9][0-9]-*-*}
done

or using sed

ls ABCD*zip | sed 's/^ABCD//;s/[0-9][0-9]-.*-.*//'

or using awk

ls ABCD*zip | awk -F"[0-9][0-9]-|ABCD" '{print $2}'
季末如歌 2024-09-02 04:29:43
sed 's/ABCD\(.*\)[0-9]\{2\}-[[:alpha:]].*.sql.zip/\1/'

输出:

chinchwad

solapur

pune2

删除 find 添加的路径(比 更灵活、可移植和可维护)解析ls):

sed 's|.*/ABCD\(.*\)[0-9]\{2\}-[[:alpha:]].*.sql.zip|\1|'
sed 's/ABCD\(.*\)[0-9]\{2\}-[[:alpha:]].*.sql.zip/\1/'

Output:

chinchwad

solapur

pune2

To remove the path added by find (which is more flexible, portable and maintainable than parsing ls):

sed 's|.*/ABCD\(.*\)[0-9]\{2\}-[[:alpha:]].*.sql.zip|\1|'
岁吢 2024-09-02 04:29:43

也许你应该去正则表达式

"ABCDchinchwad18-Mar-2010-11.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; //chinchwad
"ABCDsolapur18-Mar-2010-10.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; // solapur

Maybe you should head to regexps

"ABCDchinchwad18-Mar-2010-11.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; //chinchwad
"ABCDsolapur18-Mar-2010-10.sql.zip".match(/ABCD(\w+)[0-9]{2}-[a-zA-Z]{3}-[0-9]{4}/)[1]; // solapur
赤濁 2024-09-02 04:29:43

文件名包含以下输入内容

ABCDchinchwad18-Mar-2010-11.sql.zip

ABCDsolapur18-Mar-2010-10.sql.zip

sed -r 's/([A-Z]+)([a-z]+)(.*)/\2/' filename 

输出为

金奇瓦德

索拉普尔

The filename contains the following input content

ABCDchinchwad18-Mar-2010-11.sql.zip

ABCDsolapur18-Mar-2010-10.sql.zip

sed -r 's/([A-Z]+)([a-z]+)(.*)/\2/' filename 

The output is

chinchwad

solapur

千鲤 2024-09-02 04:29:43

Perl 在这里会做得很好:

ls *.zip | perl -pe 's/ABCD (\w+) \d{2}-\w{3}-\d{4} .*/$1/x'

如果您必须使用 find

find . -maxdepth 1 -name \*.zip | 
  perl -pe 's/.* ABCD (\w+) \d{2}-\w{3}-\d{4} .*/$1/x'

Perl will do well here:

ls *.zip | perl -pe 's/ABCD (\w+) \d{2}-\w{3}-\d{4} .*/$1/x'

If you must use find:

find . -maxdepth 1 -name \*.zip | 
  perl -pe 's/.* ABCD (\w+) \d{2}-\w{3}-\d{4} .*/$1/x'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文