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文件/数据库转储。
[![特拉维斯](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文件/数据库转储。