zrep


Namezrep JSON
Version 0.1.1 PyPI version JSON
download
home_page
Summaryreplace tool
upload_time2024-03-04 08:26:20
maintainer
docs_urlNone
authorbigzhu
requires_python>=3.10,<4.0
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # zrep

z replace, 用于替换文件中的字符串

## 作用

和 shell 提供的 `sed` 一样,就是在文件中查找替换字符串的.

不过这个默认遍历当前目录的所有子目录的所有文件.

## 为什么要有这个

我喜欢用 vim, 没有 IDE 替换一个项目的 n 多文件有些麻烦.(别让我用 vim 的替换!)

`sed` 有些反人类, 看看这个

    sed -i "s/要查找的字符串/替换字符串/g" `grep "要查找的字符串" -rl 目录`

我还没提字符串里要是有要转义的字符的情况呢.

加上一段引用自 [yinwang](http://www.yinwang.org/) 的说明吧:

     在我所在的软件行业里, 就有很多这样的设计错误。在我看来, 整个软件行业基本就是建立在一堆堆的设计失误之上。做程序员如此困难和辛苦, 大部分原因就是因为软件系统里面积累了大量前人的设计失误, 所以我们需要做大量的工作来弥补或者绕过。举个例子, Unix/Linux 操作系统就是一个重大的设计失误。Unix 系统的命令行, 系统 API,各种工具程序, 编辑器, 程序语言(C,C++等),设计其实都很糟糕。很多工具程序似乎故意设计得晦涩难用, 让人摸不着头脑, 需要大量时间学习, 而且容易出错。出错之后难以发现, 难以弥补.

    然而一般程序员都没有意识到这里面的设计错误, 知道了也不敢指出来, 他们反而喜欢显示自己死记硬背得住这些稀奇古怪的规则。这就导致了软件行业的“皇帝的新装现象”——没有人敢说工具的设计有毛病, 因为如果你说出来, 别人就会认为你在抱怨, 那你不是经验不足, 就是能力不行。这就像你不敢说皇帝没穿衣服, 否则别人就会认为你就是白痴或者不称职的人! Unix 系统的同盟者和后裔们(Linux,C 语言, Go 语言),俨然形成了这样一种霸权, 他们鄙视觉得它们难用, 质疑它们的设计的人。他们嘲笑这些用户为失败者, 即使其实有些“用户”水平比 Unix 的设计者还要高。久而久之, 他们封住了人们的嘴, 让人误以为难用的东西就是好的.

## install

```bash
pip install zrep
```

## 使用

尽量还是加上"",这样你就完全不用去管转义和特殊字符的问题了

    replace.py "要替换的字符串" "替换成什么"

- 不支持正则
- 小心使用, 会替换所有子目录里的文件的
- 已经做了限制, 不会去影响到 .git node_modules 里面的内容,也不会破坏 git node_modules
- 跳过了二进制文件

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "zrep",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "bigzhu",
    "author_email": "vermiliondun@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/7d/5e/6d09fa98b0eaa196b833eda5d6d75599de55f320f4f6941b71363dcabacb/zrep-0.1.1.tar.gz",
    "platform": null,
    "description": "# zrep\n\nz replace, \u7528\u4e8e\u66ff\u6362\u6587\u4ef6\u4e2d\u7684\u5b57\u7b26\u4e32\n\n## \u4f5c\u7528\n\n\u548c shell \u63d0\u4f9b\u7684 `sed` \u4e00\u6837,\u5c31\u662f\u5728\u6587\u4ef6\u4e2d\u67e5\u627e\u66ff\u6362\u5b57\u7b26\u4e32\u7684.\n\n\u4e0d\u8fc7\u8fd9\u4e2a\u9ed8\u8ba4\u904d\u5386\u5f53\u524d\u76ee\u5f55\u7684\u6240\u6709\u5b50\u76ee\u5f55\u7684\u6240\u6709\u6587\u4ef6.\n\n## \u4e3a\u4ec0\u4e48\u8981\u6709\u8fd9\u4e2a\n\n\u6211\u559c\u6b22\u7528 vim, \u6ca1\u6709 IDE \u66ff\u6362\u4e00\u4e2a\u9879\u76ee\u7684 n \u591a\u6587\u4ef6\u6709\u4e9b\u9ebb\u70e6.(\u522b\u8ba9\u6211\u7528 vim \u7684\u66ff\u6362!)\n\n`sed` \u6709\u4e9b\u53cd\u4eba\u7c7b, \u770b\u770b\u8fd9\u4e2a\n\n    sed -i \"s/\u8981\u67e5\u627e\u7684\u5b57\u7b26\u4e32/\u66ff\u6362\u5b57\u7b26\u4e32/g\" `grep \"\u8981\u67e5\u627e\u7684\u5b57\u7b26\u4e32\" -rl \u76ee\u5f55`\n\n\u6211\u8fd8\u6ca1\u63d0\u5b57\u7b26\u4e32\u91cc\u8981\u662f\u6709\u8981\u8f6c\u4e49\u7684\u5b57\u7b26\u7684\u60c5\u51b5\u5462.\n\n\u52a0\u4e0a\u4e00\u6bb5\u5f15\u7528\u81ea [yinwang](http://www.yinwang.org/) \u7684\u8bf4\u660e\u5427:\n\n     \u5728\u6211\u6240\u5728\u7684\u8f6f\u4ef6\u884c\u4e1a\u91cc, \u5c31\u6709\u5f88\u591a\u8fd9\u6837\u7684\u8bbe\u8ba1\u9519\u8bef\u3002\u5728\u6211\u770b\u6765, \u6574\u4e2a\u8f6f\u4ef6\u884c\u4e1a\u57fa\u672c\u5c31\u662f\u5efa\u7acb\u5728\u4e00\u5806\u5806\u7684\u8bbe\u8ba1\u5931\u8bef\u4e4b\u4e0a\u3002\u505a\u7a0b\u5e8f\u5458\u5982\u6b64\u56f0\u96be\u548c\u8f9b\u82e6, \u5927\u90e8\u5206\u539f\u56e0\u5c31\u662f\u56e0\u4e3a\u8f6f\u4ef6\u7cfb\u7edf\u91cc\u9762\u79ef\u7d2f\u4e86\u5927\u91cf\u524d\u4eba\u7684\u8bbe\u8ba1\u5931\u8bef, \u6240\u4ee5\u6211\u4eec\u9700\u8981\u505a\u5927\u91cf\u7684\u5de5\u4f5c\u6765\u5f25\u8865\u6216\u8005\u7ed5\u8fc7\u3002\u4e3e\u4e2a\u4f8b\u5b50, Unix/Linux \u64cd\u4f5c\u7cfb\u7edf\u5c31\u662f\u4e00\u4e2a\u91cd\u5927\u7684\u8bbe\u8ba1\u5931\u8bef\u3002Unix \u7cfb\u7edf\u7684\u547d\u4ee4\u884c, \u7cfb\u7edf API\uff0c\u5404\u79cd\u5de5\u5177\u7a0b\u5e8f, \u7f16\u8f91\u5668, \u7a0b\u5e8f\u8bed\u8a00(C\uff0cC++\u7b49)\uff0c\u8bbe\u8ba1\u5176\u5b9e\u90fd\u5f88\u7cdf\u7cd5\u3002\u5f88\u591a\u5de5\u5177\u7a0b\u5e8f\u4f3c\u4e4e\u6545\u610f\u8bbe\u8ba1\u5f97\u6666\u6da9\u96be\u7528, \u8ba9\u4eba\u6478\u4e0d\u7740\u5934\u8111, \u9700\u8981\u5927\u91cf\u65f6\u95f4\u5b66\u4e60, \u800c\u4e14\u5bb9\u6613\u51fa\u9519\u3002\u51fa\u9519\u4e4b\u540e\u96be\u4ee5\u53d1\u73b0, \u96be\u4ee5\u5f25\u8865.\n\n    \u7136\u800c\u4e00\u822c\u7a0b\u5e8f\u5458\u90fd\u6ca1\u6709\u610f\u8bc6\u5230\u8fd9\u91cc\u9762\u7684\u8bbe\u8ba1\u9519\u8bef, \u77e5\u9053\u4e86\u4e5f\u4e0d\u6562\u6307\u51fa\u6765, \u4ed6\u4eec\u53cd\u800c\u559c\u6b22\u663e\u793a\u81ea\u5df1\u6b7b\u8bb0\u786c\u80cc\u5f97\u4f4f\u8fd9\u4e9b\u7a00\u5947\u53e4\u602a\u7684\u89c4\u5219\u3002\u8fd9\u5c31\u5bfc\u81f4\u4e86\u8f6f\u4ef6\u884c\u4e1a\u7684\u201c\u7687\u5e1d\u7684\u65b0\u88c5\u73b0\u8c61\u201d\u2014\u2014\u6ca1\u6709\u4eba\u6562\u8bf4\u5de5\u5177\u7684\u8bbe\u8ba1\u6709\u6bdb\u75c5, \u56e0\u4e3a\u5982\u679c\u4f60\u8bf4\u51fa\u6765, \u522b\u4eba\u5c31\u4f1a\u8ba4\u4e3a\u4f60\u5728\u62b1\u6028, \u90a3\u4f60\u4e0d\u662f\u7ecf\u9a8c\u4e0d\u8db3, \u5c31\u662f\u80fd\u529b\u4e0d\u884c\u3002\u8fd9\u5c31\u50cf\u4f60\u4e0d\u6562\u8bf4\u7687\u5e1d\u6ca1\u7a7f\u8863\u670d, \u5426\u5219\u522b\u4eba\u5c31\u4f1a\u8ba4\u4e3a\u4f60\u5c31\u662f\u767d\u75f4\u6216\u8005\u4e0d\u79f0\u804c\u7684\u4eba! Unix \u7cfb\u7edf\u7684\u540c\u76df\u8005\u548c\u540e\u88d4\u4eec(Linux\uff0cC \u8bed\u8a00, Go \u8bed\u8a00)\uff0c\u4fe8\u7136\u5f62\u6210\u4e86\u8fd9\u6837\u4e00\u79cd\u9738\u6743, \u4ed6\u4eec\u9119\u89c6\u89c9\u5f97\u5b83\u4eec\u96be\u7528, \u8d28\u7591\u5b83\u4eec\u7684\u8bbe\u8ba1\u7684\u4eba\u3002\u4ed6\u4eec\u5632\u7b11\u8fd9\u4e9b\u7528\u6237\u4e3a\u5931\u8d25\u8005, \u5373\u4f7f\u5176\u5b9e\u6709\u4e9b\u201c\u7528\u6237\u201d\u6c34\u5e73\u6bd4 Unix \u7684\u8bbe\u8ba1\u8005\u8fd8\u8981\u9ad8\u3002\u4e45\u800c\u4e45\u4e4b, \u4ed6\u4eec\u5c01\u4f4f\u4e86\u4eba\u4eec\u7684\u5634, \u8ba9\u4eba\u8bef\u4ee5\u4e3a\u96be\u7528\u7684\u4e1c\u897f\u5c31\u662f\u597d\u7684.\n\n## install\n\n```bash\npip install zrep\n```\n\n## \u4f7f\u7528\n\n\u5c3d\u91cf\u8fd8\u662f\u52a0\u4e0a\"\",\u8fd9\u6837\u4f60\u5c31\u5b8c\u5168\u4e0d\u7528\u53bb\u7ba1\u8f6c\u4e49\u548c\u7279\u6b8a\u5b57\u7b26\u7684\u95ee\u9898\u4e86\n\n    replace.py \"\u8981\u66ff\u6362\u7684\u5b57\u7b26\u4e32\" \"\u66ff\u6362\u6210\u4ec0\u4e48\"\n\n- \u4e0d\u652f\u6301\u6b63\u5219\n- \u5c0f\u5fc3\u4f7f\u7528, \u4f1a\u66ff\u6362\u6240\u6709\u5b50\u76ee\u5f55\u91cc\u7684\u6587\u4ef6\u7684\n- \u5df2\u7ecf\u505a\u4e86\u9650\u5236, \u4e0d\u4f1a\u53bb\u5f71\u54cd\u5230 .git node_modules \u91cc\u9762\u7684\u5185\u5bb9,\u4e5f\u4e0d\u4f1a\u7834\u574f git node_modules\n- \u8df3\u8fc7\u4e86\u4e8c\u8fdb\u5236\u6587\u4ef6\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "replace tool",
    "version": "0.1.1",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "054494f3990871c09615cabd54837a1592d5386c896c79b86b8dd3b543392931",
                "md5": "d236eb9e7ec9746f1ba232f3d16f6a5f",
                "sha256": "1250ffdfcdfc6cdec59eaa647424e055e7a0d5a7641c14a9bc9b86345b1adf89"
            },
            "downloads": -1,
            "filename": "zrep-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d236eb9e7ec9746f1ba232f3d16f6a5f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4.0",
            "size": 3804,
            "upload_time": "2024-03-04T08:26:19",
            "upload_time_iso_8601": "2024-03-04T08:26:19.020660Z",
            "url": "https://files.pythonhosted.org/packages/05/44/94f3990871c09615cabd54837a1592d5386c896c79b86b8dd3b543392931/zrep-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7d5e6d09fa98b0eaa196b833eda5d6d75599de55f320f4f6941b71363dcabacb",
                "md5": "d8aa13f092424b337043fabe6bbd1503",
                "sha256": "df067caa88329a723912c327392c37cdbceb23fd12c4ca04409f6a761308736c"
            },
            "downloads": -1,
            "filename": "zrep-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "d8aa13f092424b337043fabe6bbd1503",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4.0",
            "size": 3191,
            "upload_time": "2024-03-04T08:26:20",
            "upload_time_iso_8601": "2024-03-04T08:26:20.695941Z",
            "url": "https://files.pythonhosted.org/packages/7d/5e/6d09fa98b0eaa196b833eda5d6d75599de55f320f4f6941b71363dcabacb/zrep-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-04 08:26:20",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "zrep"
}
        
Elapsed time: 0.24365s