Linux 参数前没有空格的xargs(或其他内容)
我想执行类似这样的操作(git squash): 从git日志中提取3:Linux 参数前没有空格的xargs(或其他内容),linux,git,xargs,git-squash,Linux,Git,Xargs,Git Squash,我想执行类似这样的操作(git squash): 从git日志中提取3: git log | blabla | xargs git rebase -i HEAD~ 这不起作用,因为xargs在HEAD~之后插入一个空格 问题是我想给这个命令加别名,所以我不能只使用 git rebase -i HEAD~`git log | blabla` 因为这个数字将在我定义别名时计算 我不必使用xargs,我只需要一个别名(最好不是函数)。试试这个: git log | blabla | xargs -
git log | blabla | xargs git rebase -i HEAD~
这不起作用,因为xargs在HEAD~
之后插入一个空格
问题是我想给这个命令加别名,所以我不能只使用
git rebase -i HEAD~`git log | blabla`
因为这个数字将在我定义别名时计算
我不必使用xargs,我只需要一个别名(最好不是函数)。试试这个:
git log | blabla | xargs -i bash -c 'git rebase -i HEAD~{}'
您可以使用
xargs
的-I
选项:
git log | blabla | xargs -I% git rebase -i HEAD~%
整个命令是这样的:git log | grep Author | head | awk{print$2}| sed'/[^gismo]/q'| head-n-1 | wc-l | xargs-I%git rebase-I head~%I我不知道
-I
的用法。谢谢这里解释了这个答案中“bash-c”的原因,我认为如果第一个命令需要一段时间才能执行,您需要它:
git log | blabla | xargs -I% git rebase -i HEAD~%