# searchophile
Contains file search functionality, combining find, grep, and sed commands. This package is made
platform-independent by using the Python tools
[refind](https://pypi.org/project/refind/),
[greplica](https://pypi.org/project/greplica/), and
[sedeuce](https://pypi.org/project/sedeuce/).
## Contribution
Feel free to open a bug report or make a merge request on [github](https://github.com/Tails86/searchophile/issues).
## Installation
This project is uploaded to PyPI at https://pypi.org/project/searchophile/
To install, ensure you are connected to the internet and execute: `python3 -m pip install searchophile --upgrade`
Ensure Python's scripts directory is under the environment variable `PATH` in order to be able to execute the CLI tools properly from command line.
## CLI Tools
The following CLI commands are installed with this package.
- search : search and display contents of files and optionally replace
- csearch : calls search with filtering for C/C++ code files (.h, .hpp, .c, .cpp, .cxx, .cc) and output line numbers
- pysearch : calls search with filtering for Python code files (.py) and output line numbers
- [refind](https://pypi.org/project/refind/) : find clone written in Python
- [greplica](https://pypi.org/project/greplica/) : grep clone written in Python
- [sedeuce](https://pypi.org/project/sedeuce/) : sed clone written in Python
### Search CLI Help
```
usage: search [-h] [-s SEARCH_STRING_OPT] [-r] [-i] [-l] [-n] [--whole-word]
[--no-grep-tweaks] [--show-color | --no-color] [--root ROOT_DIR] [-a NAME]
[-w PATH] [-x REGEX_NAME] [-e REGEX_PATH] [-M MAX_DEPTH] [-m MIN_DEPTH]
[--replace REPLACE_STRING] [-t] [--show-errors] [--version] [--dry-run]
[search_string]
Recursively search for files within a directory
optional arguments:
-h, --help show this help message and exit
grep Options:
search_string Search for this string in files (as positional)
-s SEARCH_STRING_OPT, --string SEARCH_STRING_OPT
Search for this string in files (as option)
-r, --regex-search Search as regex instead of string
-i, --ignore-case Ignore case when searching
-l, --list-file-names
List matching file names only for search operation
-n, --show-line-number
Show line number in result
--whole-word, --wholeword
Search with whole word only
--no-grep-tweaks Don't make any tweaks to the output of grep
--show-color Set to display color in search output (default: auto)
--no-color Set to not display color in search output (default: auto)
find options:
--root ROOT_DIR Root directory in which to search (default: cwd)
-a NAME, --name NAME File name globs used to narrow search
-w PATH, --wholename PATH, --whole-name PATH, --path PATH
Relative file path globs used to narrow search
-x REGEX_NAME, --regexname REGEX_NAME, --regex-name REGEX_NAME
File name regex globs used to narrow search
-e REGEX_PATH, --regexwholename REGEX_PATH, --regex-whole-name REGEX_PATH,
--regexpath REGEX_PATH, --regex-path REGEX_PATH
Relative file path regex globs used to narrow search
-M MAX_DEPTH, --maxdepth MAX_DEPTH, --max-depth MAX_DEPTH
Maximum find directory depth (default: inf)
-m MIN_DEPTH, --mindepth MIN_DEPTH, --min-depth MIN_DEPTH
Minimum find directory depth (default: 0)
sed options:
--replace REPLACE_STRING
String to replace search string. If --regex is selected, this must be
compatible with sed substitute replace string.
other options:
-t, --silent Silence information & confirmations generated by this script. If this
is specified with replace operation, no output will displayed unless
there was an error.
--show-errors Show all errors to stderr instead of suppressing
--version output version information and exit
--dry-run, --dryrun Print equivalent find/grep/sed commands and exit.
All regular expressions must be in "extended" form.
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Tails86/searchophile",
"name": "searchophile",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": null,
"keywords": "find, sed, grep, files, regex, print",
"author": "James Smith",
"author_email": "jmsmith86@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/97/c2/99056bcd9a031c51ec6ae39596292edbc7a121618d9bf6efef579ad71c9d/searchophile-1.0.8.tar.gz",
"platform": null,
"description": "# searchophile\n\nContains file search functionality, combining find, grep, and sed commands. This package is made\nplatform-independent by using the Python tools\n[refind](https://pypi.org/project/refind/),\n[greplica](https://pypi.org/project/greplica/), and\n[sedeuce](https://pypi.org/project/sedeuce/).\n\n## Contribution\n\nFeel free to open a bug report or make a merge request on [github](https://github.com/Tails86/searchophile/issues).\n\n## Installation\nThis project is uploaded to PyPI at https://pypi.org/project/searchophile/\n\nTo install, ensure you are connected to the internet and execute: `python3 -m pip install searchophile --upgrade`\n\nEnsure Python's scripts directory is under the environment variable `PATH` in order to be able to execute the CLI tools properly from command line.\n\n## CLI Tools\n\nThe following CLI commands are installed with this package.\n\n- search : search and display contents of files and optionally replace\n- csearch : calls search with filtering for C/C++ code files (.h, .hpp, .c, .cpp, .cxx, .cc) and output line numbers\n- pysearch : calls search with filtering for Python code files (.py) and output line numbers\n- [refind](https://pypi.org/project/refind/) : find clone written in Python\n- [greplica](https://pypi.org/project/greplica/) : grep clone written in Python\n- [sedeuce](https://pypi.org/project/sedeuce/) : sed clone written in Python\n\n### Search CLI Help\n\n```\nusage: search [-h] [-s SEARCH_STRING_OPT] [-r] [-i] [-l] [-n] [--whole-word]\n [--no-grep-tweaks] [--show-color | --no-color] [--root ROOT_DIR] [-a NAME]\n [-w PATH] [-x REGEX_NAME] [-e REGEX_PATH] [-M MAX_DEPTH] [-m MIN_DEPTH]\n [--replace REPLACE_STRING] [-t] [--show-errors] [--version] [--dry-run]\n [search_string]\n\nRecursively search for files within a directory\n\noptional arguments:\n -h, --help show this help message and exit\n\ngrep Options:\n search_string Search for this string in files (as positional)\n -s SEARCH_STRING_OPT, --string SEARCH_STRING_OPT\n Search for this string in files (as option)\n -r, --regex-search Search as regex instead of string\n -i, --ignore-case Ignore case when searching\n -l, --list-file-names\n List matching file names only for search operation\n -n, --show-line-number\n Show line number in result\n --whole-word, --wholeword\n Search with whole word only\n --no-grep-tweaks Don't make any tweaks to the output of grep\n --show-color Set to display color in search output (default: auto)\n --no-color Set to not display color in search output (default: auto)\n\nfind options:\n --root ROOT_DIR Root directory in which to search (default: cwd)\n -a NAME, --name NAME File name globs used to narrow search\n -w PATH, --wholename PATH, --whole-name PATH, --path PATH\n Relative file path globs used to narrow search\n -x REGEX_NAME, --regexname REGEX_NAME, --regex-name REGEX_NAME\n File name regex globs used to narrow search\n -e REGEX_PATH, --regexwholename REGEX_PATH, --regex-whole-name REGEX_PATH,\n --regexpath REGEX_PATH, --regex-path REGEX_PATH\n Relative file path regex globs used to narrow search\n -M MAX_DEPTH, --maxdepth MAX_DEPTH, --max-depth MAX_DEPTH\n Maximum find directory depth (default: inf)\n -m MIN_DEPTH, --mindepth MIN_DEPTH, --min-depth MIN_DEPTH\n Minimum find directory depth (default: 0)\n\nsed options:\n --replace REPLACE_STRING\n String to replace search string. If --regex is selected, this must be\n compatible with sed substitute replace string.\n\nother options:\n -t, --silent Silence information & confirmations generated by this script. If this\n is specified with replace operation, no output will displayed unless\n there was an error.\n --show-errors Show all errors to stderr instead of suppressing\n --version output version information and exit\n --dry-run, --dryrun Print equivalent find/grep/sed commands and exit.\n\nAll regular expressions must be in \"extended\" form.\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Command line file search tools",
"version": "1.0.8",
"project_urls": {
"Bug Reports": "https://github.com/Tails86/searchophile/issues",
"Documentation": "https://github.com/Tails86/searchophile",
"Homepage": "https://github.com/Tails86/searchophile",
"Source Code": "https://github.com/Tails86/searchophile"
},
"split_keywords": [
"find",
" sed",
" grep",
" files",
" regex",
" print"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "434dd44586206f32adbbdde0d85908bc6cd29ec314b7dfdc38be87a9dea42573",
"md5": "c8fb4f106d84d73cb29962236ded2128",
"sha256": "8a7112af047cccf36ee3582d517f2e7509d4ed3f36aacfce3453323d16d78339"
},
"downloads": -1,
"filename": "searchophile-1.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c8fb4f106d84d73cb29962236ded2128",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 11534,
"upload_time": "2024-04-18T14:39:07",
"upload_time_iso_8601": "2024-04-18T14:39:07.777643Z",
"url": "https://files.pythonhosted.org/packages/43/4d/d44586206f32adbbdde0d85908bc6cd29ec314b7dfdc38be87a9dea42573/searchophile-1.0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "97c299056bcd9a031c51ec6ae39596292edbc7a121618d9bf6efef579ad71c9d",
"md5": "40286184a597e08a0500b08a0547d8c7",
"sha256": "2a1588524a1a587488cfdc69bf24629cdad25dd413ea37f7dfb17d3961600d1d"
},
"downloads": -1,
"filename": "searchophile-1.0.8.tar.gz",
"has_sig": false,
"md5_digest": "40286184a597e08a0500b08a0547d8c7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 10279,
"upload_time": "2024-04-18T14:39:09",
"upload_time_iso_8601": "2024-04-18T14:39:09.277278Z",
"url": "https://files.pythonhosted.org/packages/97/c2/99056bcd9a031c51ec6ae39596292edbc7a121618d9bf6efef579ad71c9d/searchophile-1.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-18 14:39:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Tails86",
"github_project": "searchophile",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "searchophile"
}