标签: regex

Bash:如何使用触摸和正则表达式复制时间戳?

由于这更像是一个 Bash 问题,我认为这比超级用户更适合服务器故障,即使我在谈论媒体文件。

我不得不对几个媒体文件进行批量转换,所有输出文件都有一个新的时间戳。

/somedir/
    file1.mpg     (correct timestamp)
    file1.mpg.m4v (wrong timestamp)
    file2.mpg     (correct timestamp)
    file2.mpg.m4v (wrong timestamp)
    ...
Run Code Online (Sandbox Code Playgroud)

我想要做的是时间戳的批处理副本,以便每个 *.mpg.m4v 获得相应 *.mpg 文件的时间戳。

从我的搜索来看,看起来我需要使用touch -r一些带有替换的正则表达式来处理这个问题。

我是否在正确的轨道上,是否有人对我需要如何做正则表达式(我的正则表达式知识,不好,不好,不好)有什么建议来处理这个问题?

bash regex timestamp

3
推荐指数
1
解决办法
2808
查看次数

什么是适用于 Windows 的好的批量查找/替换工具?

我正在寻找/替换大量文件,想知道是否有人可以推荐一些适用于 Windows 的好工具。我宁愿他们是免费的。

谢谢

search replace regex bulk-action

2
推荐指数
1
解决办法
6122
查看次数

忽略行 grep

我正在运行的进程输出了一条非常烦人的消息。我宁愿不删除该行,而只需使用 grep 将其删除

要忽略的所有消息都包含“请求”一词。我可以很容易地只用这些行

$> myproc | grep requests
Run Code Online (Sandbox Code Playgroud)

我将如何使 grep 而不是 IGNORE 行与单词请求?

grep regex ignore

2
推荐指数
1
解决办法
318
查看次数

“AND”的正则表达式?

假设我给了你以下文本:

allow_httpd_anon_write --> off
allow_httpd_mod_auth_ntlm_winbind --> off
allow_httpd_mod_auth_pam --> off
allow_httpd_sys_script_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_network_connect --> off
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off
httpd_can_network_memcache --> off
httpd_can_network_relay --> off
httpd_can_sendmail --> off
httpd_dbus_avahi --> on
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> on
httpd_execmem --> off
httpd_read_user_content --> off
httpd_setrlimit --> off
httpd_ssi_exec --> off
httpd_tmp_exec --> off
httpd_tty_comm --> on
httpd_unified --> on
httpd_use_cifs --> off
httpd_use_gpg --> off
httpd_use_nfs --> off
Run Code Online (Sandbox Code Playgroud)

我想要做的是创建一个正则表达式,可以解析这样的文本,在同一行上查找两个或多个单词。例如,如果我正在寻找在同一行中包含“ftp”和“home”的 …

regex

2
推荐指数
1
解决办法
209
查看次数

内存使用正则表达式

您能帮我修改以下单行代码以获得更精确的内存使用吗-现在它只是一个整数,我想在昏迷后包含第一个值。

free -m | awk '/Mem:/ {tot = $2;} /cache:/{printf "%d\n", $3 / tot * 100}'
Run Code Online (Sandbox Code Playgroud)

谢谢

regex awk

2
推荐指数
1
解决办法
158
查看次数

nginx httpMapModule 正则表达式变量

HttpMapModule文件指出:

从 1.0.4 开始,可以通过在模式前加上 ~* 来使用不区分大小写的正则表达式。

并举例:

map $uri $myvalue {
    /aa                   /mapped_aa;
    ~^/aa/(?<suffix>.*)$  $suffix;
}
Run Code Online (Sandbox Code Playgroud)

我更新为nginx/1.2.7使用它,并且天真的正则表达式可以正常工作,但变量却不能。当我尝试上述语法时,出现错误:

nginx: [emerg] pcre_compile() failed: unrecognized character after (?< in "^/aa/(?<suffix>.*)$" at "suffix>.*)$"
Run Code Online (Sandbox Code Playgroud)

我还尝试了以下语法,但都没有奏效:

~^(.*)$  $1;
~^(.*)$  \1;
Run Code Online (Sandbox Code Playgroud)

但他们都没有工作。

有谁知道如何让变量在 HttpMapModule 中的正则表达式中工作?

nginx regex regular-expressions

2
推荐指数
1
解决办法
1万
查看次数

HAProxy 中 URL 的 Reg Exp

我正在尝试为 haproxy 构建一个 reg exp,它将匹配第二个 URL 并将其定向到与第一个不同的 acl:

mysite.com/path/
mysite.com/path/something_random
Run Code Online (Sandbox Code Playgroud)

问题是我的第一个 reg exp 匹配上面的两个 url,而它应该只匹配第二个。我也找不到关于 haproxy regex 格式的更多文档,所以我什至不确定在哪里引用我应该用于匹配的 reg exp 格式。reg exp pro 可以帮助我吗 我是新手,谢谢。

 acl filebrowser_route path_reg ^/path/.*
 acl filebrowser url_beg /path
Run Code Online (Sandbox Code Playgroud)

url routing regex haproxy

2
推荐指数
1
解决办法
2万
查看次数

带通配符的 nginx 流图

我对正则表达式真的很不好。我正在尝试在 nginx 中执行此操作:

stream {

    map $ssl_preread_server_name $name {
        api.dom1.com dom1_backend;
        *.dom2.com dom2_backend;
    }

    upstream dom1_backend {
        server api.dom1.com:443;
    }

    upstream dom2_api_backend {
        server *.dom3.com:443;
    }

    server {
        listen 443;
        proxy_pass $name;
        ssl_preread on;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何让 dom2 工作?我只需要将通配符域映射回通配符域。

意味着任何 *.dom2.com 都会转到 *.dom3.com

nginx regex pcre

2
推荐指数
1
解决办法
3255
查看次数

是否可以在 DNS 中使用正则表达式 CNAME 记录?

有可能做这样的事情吗?或任何等价物?在 DNS 服务器中。

([0-9]{2})\.example\.com\.  IN  CNAME   www$1.example.net.
Run Code Online (Sandbox Code Playgroud)

domain-name-system regex cname-record

1
推荐指数
1
解决办法
1万
查看次数

正则表达式负匹配问题

我一直很沮丧试图提出一个正则表达式来匹配基于特定文件名的字符串,我希望有一个正则表达式忍者(为了时间,我将省略强制性的 xkcd 链接)可以提供帮助。

我需要匹配任何以“.htm”或“.html”结尾的字符串,这些字符串不是(负匹配)紧跟在“msg-”之后的 4-16 位数字或连字符。字符串的开头可以是任何长度或内容。

到目前为止,这是我的尝试:

(?!msg-[0-9-]{4,16})\.html?$
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用。问题的一部分是先行匹配——如果整个字符串满足这些条件,我想匹配整个字符串,而不是不匹配的字符串的第一部分。任何建议,将不胜感激。

如果它对口味很重要,这将进入 Debian 上的 bash 脚本。

编辑:

以下是一些应该与正则表达式匹配的字符串

the-quick-brown-fox-jumped-over-the-lazy-dog.html  # ends with .html but no digits/hyphens just prior
wdihwi94uq239ujdf23yefh02msg-2-8.htm   # digit/hyphen count between 'msg-' and '.html' is below 4
ohdf23890yo4c89uwmsg-999-24j345.html   # non-number/hyphen in chars between 'msg-' and '.html'
Run Code Online (Sandbox Code Playgroud)

以下是一些不应与正则表达式匹配的字符串:

kh3j42he2-dwfascn233=feufefask0msg-34535-355  # does not end with '.htm'/'.html'
395-u78{efihighqwioh9msg-8455-212.html  # ends with 'msg-' then 4-16 of [0-9-] then '.html'
dfhjwih9asnm)qpzmx.wod923klsj39msg-00-0000.htm
Run Code Online (Sandbox Code Playgroud)

bash regex

1
推荐指数
1
解决办法
7298
查看次数