Name | zrep JSON |
Version |
0.1.1
JSON |
| download |
home_page | |
Summary | replace tool |
upload_time | 2024-03-04 08:26:20 |
maintainer | |
docs_url | None |
author | bigzhu |
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"
}