Svn Unix命令,用于剥离一行的一部分
我正在使用命令行SVN。我来自Windows上的TortoiseSVN,每当我尝试选择一个特定的文件进行还原、区分、提交等操作时,我都会觉得非常乏味,因为路径非常长,如下所示:Svn Unix命令,用于剥离一行的一部分,svn,shell,unix,command-line,grep,Svn,Shell,Unix,Command Line,Grep,我正在使用命令行SVN。我来自Windows上的TortoiseSVN,每当我尝试选择一个特定的文件进行还原、区分、提交等操作时,我都会觉得非常乏味,因为路径非常长,如下所示: src/com/company/stuff/platform/appname/subpackage/subsubpackage/Foo.java src/com/com<tab>/stuff/pla<tab>/appn<tab>/subp<tab>/subsub<t
src/com/company/stuff/platform/appname/subpackage/subsubpackage/Foo.java
src/com/com<tab>/stuff/pla<tab>/appn<tab>/subp<tab>/subsub<tab>/Foo<tab>
如果我想对该文件进行区分,我必须键入以下内容:
svn diff src/com/company/stuff/platform/appname/subpackage/subsubpackage/Foo.java
因此,我尝试通过这样做来改善这一点:
svn st | grep Foo
但它的回报是:
M src/com/company/stuff/platform/appname/subpackage/subsubpackage/Foo.java
现在,如何剥离“M”部分,以便只获取文件路径?如果“svn st”总是返回(不需要的)第一列,然后返回路径,请尝试以下操作:
svn st | grep Foo | sed 's/M *//'
svn st | grep Foo | awk '{print $2}'
如果“svn st”始终返回(不需要的)第一列,然后返回路径,请尝试以下操作:
svn st | grep Foo | awk '{print $2}'
为此,我将使用
awk
:
svn st | awk '/Foo/ { print $2 ; }'
awk
获取具有匹配指令和代码块的脚本,以便在匹配的行上执行。这将匹配其中包含Foo
的行,并打印第二个字段。(使用默认的FS
字段分隔符,该分隔符应按制表符和空格分隔。)
您还应该研究shell的文件名完成能力;大多数较新的shell都能够完成部分键入的文件名。举个长例子:
src/com/company/stuff/platform/appname/subpackage/subsubpackage/Foo.java
我可能会这样打:
src/com/company/stuff/platform/appname/subpackage/subsubpackage/Foo.java
src/com/com<tab>/stuff/pla<tab>/appn<tab>/subp<tab>/subsub<tab>/Foo<tab>
src/com/com/stuff/pla/appn/subp/subsubsub/Foo
根据目录中的文件,您可能需要或多或少地键入内容。为此,我将使用
awk
:
svn st | awk '/Foo/ { print $2 ; }'
awk
获取具有匹配指令和代码块的脚本,以便在匹配的行上执行。这将匹配其中包含Foo
的行,并打印第二个字段。(使用默认的FS
字段分隔符,该分隔符应按制表符和空格分隔。)
您还应该研究shell的文件名完成能力;大多数较新的shell都能够完成部分键入的文件名。举个长例子:
src/com/company/stuff/platform/appname/subpackage/subsubpackage/Foo.java
我可能会这样打:
src/com/company/stuff/platform/appname/subpackage/subsubpackage/Foo.java
src/com/com<tab>/stuff/pla<tab>/appn<tab>/subp<tab>/subsub<tab>/Foo<tab>
src/com/com/stuff/pla/appn/subp/subsubsub/Foo
根据目录中的文件,您可能需要或多或少地键入内容。在使用sed之后,我想到了
sed的/*/'
也适用于未受限制的文件(“?”)。@alnite一定要记住使用^
字符告诉sed
,它只在行的开头查找。在玩了sed之后,我想出了sed's/*/'
也适用于未受限制的文件(“?”)。@alnite请记住使用^
字符告诉sed
,它只在行的开头查找。这看起来像更干净的方式。这看起来像更干净的方式。我做了选项卡,这也很乏味。类型选项卡斜杠类型选项卡斜杠-。。。您的解决方案似乎是最优雅的。没有grep,我做了标签,那也很无聊。类型选项卡斜杠类型选项卡斜杠-。。。您的解决方案似乎是最优雅的。没有grep。