Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 匹配bash脚本中的单词模式_Regex_String_Bash_Shell - Fatal编程技术网

Regex 匹配bash脚本中的单词模式

Regex 匹配bash脚本中的单词模式,regex,string,bash,shell,Regex,String,Bash,Shell,我有很多pdf文件都有这种模式: 我需要检查一个文件是否有这种模式。我试过这个: pattern = "TN_[0-9]{6}.pdf" for file in *.pdf do if [[ "$file" =~ $pattern ]]; then done 但它给了我 [[:找不到 如果我没有弄错您的问题,您需要打印文件名或获取文件名为TN_u[0-6]6次.pdf,然后您可以尝试以下操作 ls -ltr TN_[0-9][0-9][0-9][0-9][0-9][0-9].p

我有很多pdf文件都有这种模式: 我需要检查一个文件是否有这种模式。我试过这个:

pattern = "TN_[0-9]{6}.pdf"

for file in *.pdf
do
  if [[ "$file" =~ $pattern ]];
  then

  done
但它给了我

[[:找不到


如果我没有弄错您的问题,您需要打印文件名或获取文件名为
TN_u[0-6]6次.pdf
,然后您可以尝试以下操作

ls -ltr TN_[0-9][0-9][0-9][0-9][0-9][0-9].pdf
OR
ls TN_[0-9][0-9][0-9][0-9][0-9][0-9].pdf
或使用:

ls -1 TN* | grep -E 'TN_[0-9]{6}.pdf'

不知何故,
{6}
无法使用
ls
命令。

pattern=“TN[0-9]{6}.pdf”
修改为
pattern=“TN[0-9]{6}.pdf”
。否则模式将被解释为命令。

为什么重复[0-9]与使用{6}命令不同六倍?@UnbarrableLightness,我试过了,但它对我的盒子不起作用,只检查一下,就会发布它。出于好奇,我问,如果这两种模式在bash中不同,我会感到惊讶。事实上,我已经试过“在TN_[0-9]{6}.pdf中保存文件”,但在TN_[0-9]时不起作用六次work@UnbearableLightnessshell glob与regex不同。您不能使用像
{6}
这样的构造(至少在
bash
中)。从这个错误消息中,我可以断定您没有运行bash。是的,但我在运行bash之后传递给了bash。您可以验证一下,您正在运行bash吗?您还可以发布完整的错误消息行吗?如果是bash,在这种情况下,错误消息也会显示为“bash”。我在使用bashWell之后,在使用sh运行脚本时遇到了错误,当然是这样当你使用bash构造而不在bash下运行它时,你会遇到一个错误!如果这个问题不适用于bash,那么为什么要把“bash”作为你帖子的标签呢?