pythonic查找和替换测试

fxr的Python项目详细描述


#fxr

[![特拉维斯](https://travis-ci.org/pmav99/fxr.svg?branch=master)(https://travis ci.org/pmav99/fxr)
[![工作服](https://coveralls.io/repos/pmav99/fxr/badge.svg?branch=master&service=github)(https://coveralls.io/r/pmav99/fxr)

`fxr`(发音为“fixer”)是一个cli实用程序,可用于在文本文件中查找匹配的模式
和:

*追加/前置行
*删除匹配行之前/之后的行。
*替换文本

您可以将其视为“ag”、“xargs”和“sed”的替代品(使用更好的api!)

**警告**:*“`fxr”当前没有干运行模式,默认情况下会就地更改文件。如果需要
备份,则需要显式启用它们!






>你所需要的就是python 2.7/3.3+和一个搜索程序,比如
[`ag`](https://github.com/ggreeer/the the the_si银搜索者):

```````
pip install-u fxr
pip install--user-u fxr `;这将在~/.local/
``


最新版本是``2.7/3.3.3+/3.3+`和一个搜索程序(https://github www.github com/ggreer.com/ggreeer/0.2.5`:

fxr有三种操作模式:fxr add`
>
>>
*`fxr add`
*`fxr delete`
*`fxr replace`




fxr add`fxr add`

>
>在fxr add`fxr add`fxr add`fxr add`




`fxr add<;pattern>;lt;add`fxr text>;是的#将文本追加到与模式匹配的行中
fxr add--prepend<;pattern>;<;added_text>;prepend文本追加到与模式匹配的行中
````


`fxr delete`

在此模式下,搜索与模式匹配的行,您可以:

1。删除匹配行前面的n行
2。删除匹配行后面的m行
3。删除匹配行本身
4。或者以上的任何组合!

例如,要在行匹配模式之前删除3行,则在其之后删除2行,并且匹配行
本身:

```
fxr delete--在3之前--在2之后--包括“行”<;pattern>;
````

这或多或少相当于:

```
ag<;pattern>;-l xargs sed-i's/<;pattern>;/<;replacement>;/g'
````


```

如果没有提供,则
更改正在进行。
*`--literal`:设置此标志时,模式将不会被分析为正则表达式。
*`--raise if no change`:设置此标志时,如果文件中没有
更改,则会引发异常。
*`--single<;filename>;`:指定此参数时,fxr将只尝试对指定的文件执行其魔法。也就是说,不使用“ag”。
*`--search“prog”:如果不喜欢“ag”,可以指定备用程序(例如“rg”)。
*`--search“args”:可以为搜索程序指定其他参数。


` sed'regex引擎非常有限。例如,在您需要look aheads和其他高级功能之前,您并不真正需要它们的支持!
([链接](https://www.gnu.org/software/sed/manual/html_node/regular expressions.html))。

2.用于组合“ag”、“sed”和“xargs”的api充其量是笨拙的(例如,在“ag”和“sed”中重复“pattern”>;`both
)。例如:
`ag<;pattern>;-l xargs sed-i's/<;pattern>;/<;replacement>;/g'`



由于使用“ag”搜索匹配的文件
,因此性能应该不算太糟,但请记住,主要用例是对源代码和配置文件进行更改,而不是多GB CSV文件/数据库转储。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android Studio Java将输入存储在一个文本文件中,所有输入在一行中加载后显示在屏幕上   在我的Java应用程序中记录日志配置   java在将socket从Localhost构建到google时出错。通用域名格式   在java中通过SOAP发送附件   java Tomcat的JspWriter编码不正确   java应用程序在截击StringRequest时不断崩溃   java需要一个保持顺序并具有“顺序敏感”equals/hashCode的映射   Java框架地址栏元素   java如何从特定范围生成4个不重复的数字?   googleappenginejava。安全AccessControlException:拒绝访问(java.io.FilePermission)   加载游戏时java Fabric入口点异常崩溃   java Python我如何读入和读出,以便其他读者可以阅读它以便进一步购买?