如何从";中选择/导入文件名;“git状态”;在狂欢节上
所以我在命令行上输入“git status”。通常,我想做的下一件事是复制一个文件名以在编辑器中打开如何从";中选择/导入文件名;“git状态”;在狂欢节上,git,bash,Git,Bash,所以我在命令行上输入“git status”。通常,我想做的下一件事是复制一个文件名以在编辑器中打开 有人知道通过编程选择“git status”列出的第n个文件并将其复制到内存中的技巧吗?(shell是bash)这里有一个管道,您可以使用它从git状态中选择第n个“修改”项 $ git status | grep '^.modified' | cut -d: -f2- | sed -e 's/^...//' | awk 'NR == 1' 它的工作原理如下:git status生成完整的输出
有人知道通过编程选择“git status”列出的第n个文件并将其复制到内存中的技巧吗?(shell是bash)这里有一个管道,您可以使用它从git状态中选择第n个“修改”项
$ git status | grep '^.modified' | cut -d: -f2- | sed -e 's/^...//' | awk 'NR == 1'
它的工作原理如下:git status
生成完整的输出
grep '^.modified'
仅选择以“修改”开头的行(选项卡前面有一个字符)
在第一个冒号之后给我们一切
sed -e 's/...//'
删除前三个字符(空格)
选择第一行,您可以将其替换为所需的任何内容
您可以使用$(…)
或者,您可以在不使用前导空格的情况下进一步完善输出:
git status | grep 'new file:' | cut -f2 -d: | sed 's/^ *//'
file1
file2
file3
您想要的是修改后的文件还是添加和删除的文件?编写一个简短的程序或别名以从git状态提取信息非常简单(尽管可能还有git管道命令可以直接执行您想要的操作)
awk 'NR == 1'
files=$(ls) # copies the contents of ls into the shell variable files
git status | grep 'new file:' | cut -f2 -d:
file1
file2
file3
git status | grep 'new file:' | cut -f2 -d: | sed 's/^ *//'
file1
file2
file3