标签: glob

带空格的 shell glob 扩展

我想编写一个 Posix shell 脚本函数,该函数将匹配需要扩展的空格和通配符 (*?) 的模式。在 Python 中,glob.glob('/tmp/hello world*')将返回正确的列表。我如何在 shell 中执行此操作?

#!/bin/sh

## this function will list
## all of the files in the /tmp
## directory that match pattern
f() {
  PATTERN="$1"
  ls -1 "/tmp/$PATTERN"
}

touch '/tmp/hello world {1,2,3}.txt'
f 'hello world*'
Run Code Online (Sandbox Code Playgroud)

bash shell glob sh

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

WordPress php glob(); 不工作?

我在 WordPress 中创建了一个函数,我希望在其中获取给定目录中的所有图像,为此我使用了 PHP glob 函数,由于某种原因我无法使其正常工作,是否禁用了 glob() 函数以供在其中使用WordPress?

无效的代码...

function getAccreditaionLogos(){

    define('ACCREDPATH', get_stylesheet_directory_uri() . '/img/accreditations/');

    $images = glob(ACCREDPATH . '*.png');
    foreach($images as $key => $img):
        $get_icons = '<li><img src="'.$img.'" /></li>';
        echo $get_icons;
    endforeach;
}
Run Code Online (Sandbox Code Playgroud)

php wordpress glob

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

由带引号和不带引号的部分组成的字符串中的通配符扩展(通配)

我在 shell 脚本中有一行如下所示:

java -jar "$dir/"*.jar
Run Code Online (Sandbox Code Playgroud)

,因为我只想执行该文件夹中碰巧命名的任何 jar 文件。但这并不像我预期的那样工作。我收到错误消息:

Error: Unable to access jarfile [folder-name]/*.jar
Run Code Online (Sandbox Code Playgroud)

它按字面意思使用“*”字符,而不是进行我想要的替换。我该如何解决?

编辑:它现在正在工作。我只是有错误的文件夹前缀:/对于任何想知道的人,这是正确的方法。

bash shell glob quoting shopt

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

引号内的通配符

当我执行以下操作时:

rmdir /path/to/dir/*.lproj
Run Code Online (Sandbox Code Playgroud)

它工作正常。

当我做:

APP_RESOURCES="/path/to/dir"
rmdir "$APP_RESOURCES/*.lproj"
Run Code Online (Sandbox Code Playgroud)

它不起作用并说它实际上是在寻找一个以星号符号命名的目录。通配符不会被解释。如何使这在报价中起作用?

bash glob

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

为什么 git grep 中的文件 glob **/*.cs 没有显示所有 *.cs 命中?

所以我想在我的项目中找到 NLog 的使用,我使用 git grep 来为我做,但它发现了比我需要的更多的案例:

git grep NLog
GETA.Seo.Sitemap/Geta.SEO.Sitemaps.csproj:    <Reference Include="NLog, Version=2.1.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
GETA.Seo.Sitemap/Geta.SEO.Sitemaps.csproj:      <HintPath>..\packages\NLog.2.1.0\lib\net45\NLog.dll</HintPath>
GETA.Seo.Sitemap/Services/CloudinaryService.cs:                NLogger.Exception("Could not transform image", exception);
GETA.Seo.Sitemap/Services/CloudinaryService.cs:                NLogger.Warn("Url for cloudinary id was null");
GETA.Seo.Sitemap/Services/CloudinaryService.cs:                NLogger.Warn("Could not locate file object for cloudinary id in EpiServer");
 ....
 etc
Run Code Online (Sandbox Code Playgroud)

当然,它找到了我要找的东西,但我想过滤到只以.cs. 所以我尝试这样做:

git grep NLog **/*.cs
Web/Global.asax.cs:            NLogger.Info("Meny application start");
Run Code Online (Sandbox Code Playgroud)

只是一击,我上面的两场比赛都没有列出。我发现这很奇怪,我可能误解了 git grep 的通配匹配。有人可以启发我吗?

git grep glob

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

Ansible 仅在远程主机上复制或移动文件

这应该有效,但没有,并给出以下错误(如下)。

我在这里这里阅读了几篇关于 stackoverflow 的帖子,但在这种情况下似乎没有一个好的答案。我真的希望我只是错过了一些愚蠢的东西,我已经在这里呆了几个小时了,所以请不要介意我的咆哮,但我需要发泄一下。

由于 ansible 2.3.0 无法仅在远程主机上执行复制/移动/重命名文件这样简单的操作,我的意思是谁会想要这样做?而且它也不能作用于 globs (*)(比如当你不知道要作用于哪些文件时),两步方法似乎是(我知道的)移动某些文件的唯一方法(仅在远程主机)。但即使这样也行不通。

migrate_rhel2centos.yml

---
- hosts: RedHat
  become: true
  become_user: root
  become_method: sudo
  vars:
    repo_dir: /etc/yum.repos.d
  tasks:
  - name: create directory
    file: path=/etc/yum.repos.d/bak/ state=directory

  - name: get repo files
    shell: "ls {{ repo_dir }}/*.repo"
    register: repo_list

 - debug: var=repo_list.stdout_lines

 - name: move repo files  
   command: "/bin/mv -f {{ item }} bak"
   args:  
     chdir: "{{repo_dir}}"
   with_items: repo_list.stdout_lines


#################################

TASK [get repo files]     

**********************************************************************
changed: [myhost]

TASK [debug]    
**********************************************************************
ok: …
Run Code Online (Sandbox Code Playgroud)

glob move ansible-playbook

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

从全局模式匹配中排除文件夹

使用Prettier格式化 js 代码。Prettier似乎在幕后使用globby

我尝试了以下方法:

$ prettier './**/*.{js, css}' '!assets/**'
$ prettier './**/*.{js, css}' '!(assets/**)'
$ prettier './**/*.{js, css}' '!assets/**/*.*'
$ prettier './**/*.{js, css}' '!(assets/**/*.*)'
$ prettier './**/*.{js, css}' 'assets/**/!*.*'
Run Code Online (Sandbox Code Playgroud)

在所有情况下,文件assets夹中的文件都包含在内。

这样做的正确方法是什么?

javascript glob prettier

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

如何使用php搜索文件夹中的文件?

我有一个名为 的allfiles文件夹,该文件夹中有一些文件,例如

 1212-how-to-sddk-thosd.html
 3454-go-to-dlkkl-sdf.html
 0987-sfda-asf-fdf-12331.html
 4789-how-to-fdaaf-65536.html
Run Code Online (Sandbox Code Playgroud)

我以前是scandir用来列出所有文件的,现在我需要通过关键字来查找文件,exampleto-dlkkl是关键字,我会得到文件3454-go-to-dlkkl-sdf.html

Glob 似乎不起作用,并且 opendir 和 readdir 不起作用,有什么想法吗?

php glob readdir scandir opendir

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

如何使用熊猫和地球将多个 .xlsx 文件转换为 .csv

我有一个JanuaryDataSentToResourcePro包含多个 .xlsx 文件的文件夹。我想遍历文件夹并将它们全部转换为 .csv 并保持相同的文件名。

为此,我正在尝试实现 glob,但出现错误: TypeError: 'module' object is not callable

import glob
excel_files = glob('*xlsx*')

for excel in excel_files:
    out = excel.split('.')[0]+'.csv'
    df = pd.read_excel(r'''C:\Users\username\Documents\TestFolder\JanuaryDataSentToResourcePro\ResourceProDailyDataset_01_01_2018.xlsx''', 'ResourceProDailyDataset')
    df.to_csv(out) 
Run Code Online (Sandbox Code Playgroud)

我是python的新手。看起来对吗?

更新:

import pandas as pd
import glob
excel_files = glob.glob("*.xlsx")

for excel in excel_files:
    out = excel.split('.')[0]+'.csv'
    df = pd.read_excel(excel, 'ResourceProDailyDataset')
    df.to_csv(out)
Run Code Online (Sandbox Code Playgroud)

但仍然没有将 convert .xlsx 转换为 .csv

python glob pandas

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

使 glob 目录变量

我正在尝试编写一个 Python 脚本,该脚本在文件夹中搜索带有.txt扩展名的所有文件。在手册中,我只看到它硬编码到glob.glob("hardcoded path").

如何使 glob 搜索模式的目录成为变量?具体来说:用户输入。

这是我尝试过的:

import glob

input_directory = input("Please specify input folder: ") 
txt_files = glob.glob(input_directory+"*.txt")
print(txt_files)
Run Code Online (Sandbox Code Playgroud)

尽管为.txt文件提供了正确的目录,脚本还是打印了一个空列表[ ]

python glob python-3.x

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