Shell 命令行,svn add 需要添加很多文件时的简化脚本

Shell 命令行,svn add 需要添加很多文件时的简化脚本

我一直使用 git 版本管理工具,对于 svn 很不熟悉。现在接到一个项目是用 svn 进行管理的。我简单看了一下 svn 的管理命令,就开始上手工作了。

结果发现,svn 貌似没有 gitgit add -A 这样的添加所有未添加文件的命令。

或许有,我没有更深的研究,因为用过就不用了。

现在我添加了很多的新文件,一条一条命令的输入显得非常的麻烦。因此,我随手写了一个脚本,来实现了我需要的这个功能。

实现脚本

files=$(svn st | grep ? | sed 's/\?//g' | sed 's/ //g')
for i in $files; do
  svn add $i
done

实现原理:

  1. svn st 可以查看当前的 svn 的状态,最前面是 ? 表示未添加的文件
  2. 我们可以用 grep ? 过滤出来需要添加的文件。
  3. sed 可以过滤掉 ? 和 空格,只留下这些要上传的文件的路径
  4. 使用一个 for 循环,在文件路径前面加上 svn add 就可以实现添加文件了。

整体代码非常短,也非常简单,但是避免了我一次次的输入。

最后,我把这个代码写成全局的命令,命名为 svnadd 就可以在任何地方使用了。

实现方式2

上面用了循环,其实,svn add 是可以接受多个文件参数的,也就是可以通过命令,来添加所有的文件。

并且,上面的代码用了两个 sed 来分别替换问号和空格。这些可以简化到一个命令里面去,因此,这个命令可以优化为以下代码:

svn add $(svn st | grep ? | sed 's/[\?][ ]//g')

以上脚本均在 MAC 下测试通过,在 linux 下可能会有稍许不同。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习之tensorflow实战篇

centos7.4安装PostgreSQL,测试中

安装yum更新源 yum install https://download.postgresql.org/pub/repos/yum/10/redhat/r...

3684
来自专栏云计算教程系列

Prometheus升级指南

Prometheus是一个基于Metrics的监控系统 ,与Kubernetes同属CNCF(Cloud Native Computing Foundation...

1.1K2
来自专栏向治洪

nginx简明教程

nginx简介 Nginx (“engine x”) 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx ...

2259
来自专栏Java技术栈

两张趣图助你理解 HTTP 状态码!

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。

1263
来自专栏张尧博客

macOS High Seirra 提示“已损坏,打不开,您应该将它移至垃圾篓。”

2987
来自专栏吴柯的运维笔记

【Linux】不得不了解的软件包管理与安装指令

软件安装包(两种格式): .rpm---<rpm package manager> .deb---<Debian系统专属的安装包格式> yum...<yello...

3779
来自专栏Android干货

安卓开发-问题集-Description Resource Path Location TypeUnparsed aapt error(s)! Check the console for output

42814
来自专栏FreeBuf

MacWiFi:一款管理Mac系统WIFI的命令行工具(包含交互式Shell)

今天给大家介绍的是一款名叫mac-wifi的命令行工具,它可以管理macOS系统的无线网络,并且还提供了交互式Shell。 ? mac-wifi mac-wif...

3358
来自专栏Java架构沉思录

Zookeeper总览

ZooKeeper是一款开源的 分布式应用 的 分布式协调服务 。它包含一个简单的 原语集 ,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zoo...

1881
来自专栏10km的专栏

eclipse中执行Ant脚本:Class not found: javac1.8

最近把eclipse也升级到neon,java也同步升级到1.8,在eclipse中执行很久之前写的ant脚本(build.xml)时报错了: Class n...

2286

扫码关注云+社区

领取腾讯云代金券