所以我在命令行上输入“git status”。我想要做的下一件事通常是复制一个文件名以在我的编辑器中打开。
任何人都知道以编程方式选择“git status”列出的第n个文件并将其复制到内存中的技巧? (shell是bash)
答案 0 :(得分:0)
这是一个管道,您可以使用它从git status中选择第n个“已修改”项目。
$ git status | grep '^.modified' | cut -d: -f2- | sed -e 's/^...//' | awk 'NR == 1'
以下是它的工作原理:git status
生成完整输出
grep '^.modified'
仅选择以修改开头的行(标签前面有一个字符)
cut -d: -f2-
在第一次结肠后给我们所有东西
sed -e 's/...//'
删除前三个字符(空格)
awk 'NR == 1'
选择第一行,您可以将其替换为您想要的任何内容。
您可以使用$(...)
files=$(ls) # copies the contents of ls into the shell variable files
答案 1 :(得分:0)
git status | grep 'new file:' | cut -f2 -d:
file1
file2
file3
或者,您可以在没有前导空格的情况下进一步完善输出:
git status | grep 'new file:' | cut -f2 -d: | sed 's/^ *//'
file1
file2
file3
答案 2 :(得分:0)
测试了此命令,它有效。
git status | rg \t | xargs vim