【发布时间】:2019-05-29 08:20:09
【问题描述】:
如何在没有输入文件的情况下将参数传递给 sed。 sed 是单引号,并且已经有管道。
git filter-branch -f --index-filter \
'git ls-files -s | sed -i "s-\t\"*-&dirname/-" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
git update-index --index-info &&
mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' HEAD
如果 dirname 是硬编码的,上面的代码可以正常工作。但我需要将命令行参数中的目录名传递给脚本。我正在尝试如下,但没有运气。
'set subdir=$folder;git ls-files -s | sed -i "s-\t\"*-&$subdir/-" |
sed 说输入文件丢失。我不能直接将输入文件传递给 sed。我看到如下错误。
Rewrite 9c86de42b7f3228e3d45a278c8caf7e24c8e55cf (1/2) (0 seconds passed, remaining 0 predicted)
sed: no input files
【问题讨论】:
标签: linux git sed git-filter-branch