我想忽略:
settings/local_*.py
apps/settings/local_*.py
path_to/settings/local_*.py
Run Code Online (Sandbox Code Playgroud)
但我不想忽视:
local_*.py
something/else/local_*.py
Run Code Online (Sandbox Code Playgroud)
我也不想忽视:
settings/non_local_*.py
...
Run Code Online (Sandbox Code Playgroud)
这超出了 gitignore 的范围吗?
当然,我正在寻找一种通用的解决方案,无论settings目录位于何处(在存储库内),该解决方案都可以工作。
我正在编写一个脚本来将文件(例如Dropbox Camera Uploads )移动到以年份命名的文件夹,如下所示:
#!/bin/bash
#
# Separate (camera) images on directory
# to year named folders.
#
# All files must be named as "yyyy-mm-dd HH:MM:SS.ext"
#
for img in *.{jpg,jpeg,png}; do
year=${img:0:4}
[ -d "$year" ] || mkdir "$year"
mv -iv "$img" "$year/"
done
Run Code Online (Sandbox Code Playgroud)
该脚本对于匹配文件按预期工作,但是当没有任何具有某种扩展名的文件时,将扩展为*.ex(前两个扩展字符)。然后它创建空目录,如下所示:
'*.jp'
'*.jp'
'*.pn'
Run Code Online (Sandbox Code Playgroud)
我怎样才能忽略不匹配的文件?
我正在尝试使用 gulp 将一个文件复制到具有不同名称的同一目录 - 具有不同名称的文件已经存在。在 Unix 中这只是简单的cp ./data/file.json.bak ./data/file.jsongulp 似乎更棘手(我在 Windows 系统上)。
我试过了:
gulp.task('restore-json',function(){
return gulp.src('./data/file.json.bak')
.pipe(gulp.dest('./data/file.json',{overwrite:true}));
});
如果该文件存在,我会收到EEXIST错误。如果没有,它将创建file.json为目录。
我假设这个问题是因为 gulp 使用globbing并有效地将src和dest视为路径。你知道我可以做到这一点的最有效的方法吗?我想解决方法是将文件复制到 tmp 目录,然后使用 glob 通配符重命名和复制,但这是正确的方法吗?
下面的 Python 代码适用于一个 XML。当我尝试打开并解析多个 XML 文件时,问题就出现了,这些文件具有相似的结构并保存在文件夹中(第 4 行 -> data = open('[0-9].xml',"rb")。我我正在尝试正则表达式,但我不确定这是否也适用于命名文档。
所有文档的名称为“11111.xml、22222.xml、33333.xml ...”等。
import xml.etree.ElementTree as ET
import re
data = open ('[0-9].xml',"rb")
tree = ET.parse (data)
lst_jugador = tree.findall('data_panel/players/player')
for jugador in lst_jugador:
print (jugador.find('name').text, jugador.get("id"))
Run Code Online (Sandbox Code Playgroud) 如果您在 CMake 中使用全局文件列表file(GLOB..),则所有文件都会列出并附加其完整路径。
如何在 CMake 中 glob 一组文件,仅保存文件名?
我阅读了官方手册,在这里我发现了这一点:
file(GLOB <variable>
[LIST_DIRECTORIES true|false] [RELATIVE <path>]
[<globbing-expressions>...])
Run Code Online (Sandbox Code Playgroud)
和
By default GLOB lists directories - directories are omitted in result
if LIST_DIRECTORIES is set to false.
Run Code Online (Sandbox Code Playgroud)
我尝试了这些解决方案,但没有一个有效:
file(GLOB_RECURSE src_files LIST_DIRECTORIES false ${SRC})
file(GLOB_RECURSE src_files LIST_DIRECTORIES=false ${SRC})
file(GLOB_RECURSE src_files LIST_DIRECTORIES(false) ${SRC})
set(LIST_DIRECTORIES false)
file(GLOB_RECURSE src_files ${SRC})
Run Code Online (Sandbox Code Playgroud)
我的输出始终是附加完整路径的文件列表。我知道我可以使用 RELATIVE 来相应地设置路径,但如果可以的话我宁愿避免它。
我需要使用 getopts 从参数中获取正则表达式
./function -i "d*"
Run Code Online (Sandbox Code Playgroud)
while getopts 'i:n' opt; do
# check -i and -n arg
case "$opt" in
i)
i=true
pattern=$OPTARG;;
esac
done
echo $pattern
Run Code Online (Sandbox Code Playgroud)
输出是darProVas dirgraf-copy dirgraf-my:以 . 开头的文件列表d。我需要这个输出:d*.
我想做这样的事情:echo "foo" > bar/**/buzz但这无效
基本上,我想将字符串回显到 bar 中每个目录中的文件中。
我确信有一个简单的方法可以做到这一点,哈哈。
在我的交互式 shell 中,我可以将模式存储在变量中
$ targets="?(pcm52|pcm61)"
$ ls -l config/devdesc.$targets
-rw-r--r-- 1 kfa kfa 113 Dec 16 13:43 config/devdesc.pcm52
-rw-r--r-- 1 kfa kfa 14 Dec 16 13:44 config/devdesc.pcm61
Run Code Online (Sandbox Code Playgroud)
但是如果我创建一个shell脚本
targets="?(pcm52|pcm61)"
ls -l config/devdesc.$targets
Run Code Online (Sandbox Code Playgroud)
运行它时出现此错误
$ bash -x /tmp/e.sh
+ targets='?(pcm52|pcm61)'
+ ls -l 'config/devdesc.?(pcm52|pcm61)'
ls: cannot access 'config/devdesc.?(pcm52|pcm61)': No such file or directory
Run Code Online (Sandbox Code Playgroud)
为什么放入脚本时会失败?
我希望@list包含$ root_dir中匹配*YYYYMMDD*的所有文件名,其中YYYYMMDD是25小时前.
我试试......
my ($y, $m, $d) = (localtime(time - 25 * 60 * 60))[5,4,3];
my $pattern = sprintf('*%4d%02d%02d*',$y+1900,$m+1,$d);
print "The pattern is $pattern\n";
my @files = <$pattern>;
foreach (@files) {
print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
...但是我没有获取文件列表,而是在未打开的文件句柄上获得readline().
我知道<>运算符可以解释变量,因此<$ y $ m $ d>将在一年中最后三个月的三分之二天内工作,因为那些将是有两位数的月和日,但是不稳健.
我必须写...
$m = sprintf('%02d',$m+1);
$d = sprintf('%02d',$d+1);
my @files = <*$y$m$d*>;
Run Code Online (Sandbox Code Playgroud)
......还是有更简洁的东西?就像是 ...
# invalid code unless you want to produce the string "readline() on unopened filehandle" for some reason
my @files = …Run Code Online (Sandbox Code Playgroud)