regex - 如何修复目录名:缺少操作数

标签 regex bash npm

我有一个NPM包,它创建时间跟踪器,它使用for in定位MD文件的标题,然后将其转换为跟踪器。当前在Mac上运行时,它工作正常,在Windows上我收到dirname:missing operand

我尝试在运行良好的Mac上运行,然后又在Windows上运行,它吐出了错误。正在搜寻解决方案,但未找到适合我的情况的解决方案

for file in $(git diff HEAD --name-only | grep -E '\-Day\-LessonPlan\.md$' | xargs -n1 dirname);
do
  ./node_modules/.bin/tt-generator $file;
done


我希望它能够运行,它将访问NPM程序包并为我们创建时间跟踪器。目前在Windows上,我只收到dirname: missing operand。 Mac工作正常。

最佳答案

dirname没有任何文件时,您会收到此错误。

这意味着grep命令在两台计算机上的工作方式不同。

可能的解决方法是让git过滤文件名:

git diff --name-only "*-Day-LessonPlan.md" | xargs dirname


另请注意,由于-n1可以采用多个文件名,因此我删除了xargsdirname选项。

关于regex - 如何修复目录名:缺少操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57790706/

相关文章:

bash - 并行运行作业

javascript - 从 npm 包导入 Angular 模块

node.js - Jenkins 构建失败 - 错误 : not found: make

php - 说明正则表达式中的字符数

python - 查找关键字符之间的单词模式

linux - 动态获取由 docker run 命令创建的正在运行的容器 ID/名称

bash - envsubst 不能就地替换吗?

javascript - 确定 javascript 正则表达式中有多少个捕获组?

regex - 使用 Go 从字符串中删除所有文章和其他字符串?

node.js - 在 npm 5 中调用 install 时如何避免 "npm fetch GET 200"日志