gpt4 book ai didi

regex - Grep 具有特定下划线模式的文件名

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:02 24 4
gpt4 key购买 nike

我正在尝试使用 egrep 和 regex 从文件中 grep 一个模式,但没有成功。

我需要的是获取一个文件,例如约定名称为:

xx_code_lastname_firstname_city.doc

代码应该至少有 3 位数字,姓氏和名字以及城市可以根据大小而变化

我正在尝试下面的代码,但它无法实现我想要的:

ls -1  | grep -E "[xx_][A-Za-z]{3,}[_][A-Za-z]{2,}[_][A-Za-z]{2,}[_][A-Za-z]{2,}[.][doc|pdf]"

这是尝试从开头获取标准 xx_,然后是任何至少包含 3 个单词的代码,之后必须有另一个下划线,依此类推。有人可以帮忙吗?

最佳答案

考虑一个 extglob,如下所示:

#!/bin/bash
shopt -s extglob # turn on extended globbing syntax

files=( xx_[[:alpha:]][[:alpha:]]+([[:alpha:]])_[[:alpha:]]+([[:alpha:]])_[[:alpha:]]+([[:alpha:]])_[[:alpha:]]+([[:alpha:]]).@(doc|docx|pdf) )

[[ -e ${files[0]} ]] || -L ${files[0]} ]] && printf '%s\n' "${files[@]}"

这是可行的,因为

[[:alpha:]][[:alpha:]]+([[:alpha:]])

...匹配任何包含三个或更多字母字符的字符串——其中两个显式,其中一个具有 +() 一个或多个 extglob 语法。


同样,

@(doc|docx|pdf)

...匹配这三个特定字符串中的任何一个。

关于regex - Grep 具有特定下划线模式的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com