All Projects → liddiard → stream-editor

liddiard / stream-editor

Licence: other
A web tool for interactively using and chaining command-line text manipulation utilities like sed, grep, and awk.

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to stream-editor

Sakura
SAKURA Editor (Japanese text editor for MS Windows)
Stars: ✭ 689 (+2656%)
Mutual labels:  grep
Command Line Text Processing
⚡ From finding text to search and replace, from sorting to beautifying text and more 🎨
Stars: ✭ 9,771 (+38984%)
Mutual labels:  grep
Phpgrep
Syntax-aware grep for PHP code.
Stars: ✭ 185 (+640%)
Mutual labels:  grep
Vim Grepper
👾 Helps you win at grep.
Stars: ✭ 1,030 (+4020%)
Mutual labels:  grep
Bash Oneliner
A collection of handy Bash One-Liners and terminal tricks for data processing and Linux system maintenance.
Stars: ✭ 1,359 (+5336%)
Mutual labels:  grep
Ack2
**ack 2 is no longer being maintained. ack 3 is the latest version.**
Stars: ✭ 1,504 (+5916%)
Mutual labels:  grep
Vgrep
vgrep - a user-friendly pager for grep
Stars: ✭ 492 (+1868%)
Mutual labels:  grep
Grab
experimental and very fast implementation of a grep
Stars: ✭ 230 (+820%)
Mutual labels:  grep
Bingrep
like ~~grep~~ UBER, but for binaries
Stars: ✭ 1,395 (+5480%)
Mutual labels:  grep
Goreplace
command line tool for search and replace
Stars: ✭ 164 (+556%)
Mutual labels:  grep
Comb
Interactive code auditing and grep tool in Emacs Lisp
Stars: ✭ 58 (+132%)
Mutual labels:  grep
Wheel
Quick navigation framework for Vim and Neovim : buffer groups, mru, locate, find, grep, outline, yank, ...
Stars: ✭ 94 (+276%)
Mutual labels:  grep
Grepbugs
A regex based source code scanner.
Stars: ✭ 118 (+372%)
Mutual labels:  grep
Ripgrep
ripgrep recursively searches directories for a regex pattern while respecting your gitignore
Stars: ✭ 28,564 (+114156%)
Mutual labels:  grep
Ruplacer
Find and replace text in source files
Stars: ✭ 201 (+704%)
Mutual labels:  grep
Ugrep
🔍NEW ugrep v3.1: ultra fast grep with interactive query UI and fuzzy search: search file systems, source code, text, binary files, archives (cpio/tar/pax/zip), compressed files (gz/Z/bz2/lzma/xz/lz4), documents and more. A faster, user-friendly and compatible grep replacement.
Stars: ✭ 626 (+2404%)
Mutual labels:  grep
Ucg
UniversalCodeGrep (ucg) is an extremely fast grep-like tool specialized for searching large bodies of source code.
Stars: ✭ 117 (+368%)
Mutual labels:  grep
Amber
A code search / replace tool
Stars: ✭ 230 (+820%)
Mutual labels:  grep
Learn gnugrep ripgrep
Example based guide to mastering GNU grep and ripgrep
Stars: ✭ 204 (+716%)
Mutual labels:  grep
Dategrep
print lines matching a time range
Stars: ✭ 159 (+536%)
Mutual labels:  grep

Found a bug? See info below on how to report it.

Stream Editor logo Stream Editor | streameditor.io

Stream Editor is a web tool for interactively using and chaining command-line text manipulation utilities, such as sed, grep, and awk.

Text transformation tools provided by Unix operating systems are incredibly powerful for pattern extraction, formatting, and data manipulation, but a command line isn't always the best interface for using them when it comes to experimentation and debugging, especially if you want to chain several commands together with pipes and understand what each is doing.

Stream Editor provides a user-friendly web interface for tinkering with these text editing commands that dynamically updates output as you type. It enables you to chain multiple commands together and observe the output after each step, optionally seeing a diff of added/deleted text with green/red highlights.

Once you've finalized the operations you want to use, Stream Editor lets you export them as a series of command-line pipes with a single click, or share them with a unique URL.

Read more on my website.

Screenshots

Stream Editor default view (dark theme)

Stream Editor screenshot

Stream Editor light theme, showcasing its full Unicode support

Stream Editor screenshot

Stream Editor being used to analyze its own logs, showing the effects of multiple commands chained together

Stream Editor screenshot

Reporting bugs

Security bugs

Found a security bug related to this codebase or how Stream Editor is deployed at streameditor.io? I highly encourage and kindly request that you report it by emailing:

security [at] streameditor [dot] io

Please privately email me instead of posting about it publicy on GitHub Issues or elsewhere, and please include your steps to reproduce.

The way Stream Editor is set up at streameditor.io is intended to prevent:

  • arbitrary command execution
  • writing files to the server
  • reading any sensitive data from the server
  • otherwise gaining access to the server
  • adversely affecting others' ability to use streameditor.io in a significant way

Valid security bugs are likely to include anything that allows you to do these things. Note that reading certain non-sensitive files from the server is possible and expected.

Other bugs

If your bug does not involve any security concerns, please report it on GitHub Issues.

Installation (local development)

System requirements / prerequisites

  • MacOS or Linux*
  • Python 3.7+ w/ pip 3+
  • Node.js 10+ w/ npm 6+

* The Unix text editing commands that Stream Editor supports are not all available on Windows, though you may be able to get everything to work in a Cygwin kind of environment. It just hasn't been tested.

Instructions

  1. Clone the repo.
  2. (optional but recommended) Set up a Python 3 virtual environment for the project, and activate it.
  3. Install the server dependencies: pip3 install -r requirements.txt
  4. Start the Flask development server: FLASK_ENV=development python3 dev_server.py
  5. Change to the client directory: cd client
  6. Install the client dependencies: npm install
  7. Start the client-side development server: npm start

Notes for server deployment

Note: This isn't a comprehensive guide; this section is intended mainly for my personal reference.

JAIL_PATH=/root/jail gunicorn --name stream-editor server:app
  • and with nginx (command to run on the server to see its logs):
cd /var/log/nginx; tail -f access.log error.log
  • chroot jail is configured with Jailkit; this post was a useful reference
  • after Jailkit is installed (you have to build it from source), the script in scripts/create_jail.sh is supposed to do all the setup for the jail
  • the man pages generated in client/public/manpages/ are specific to the versions running on whatever machine you're using
  • generate new man pages with the script in scripts/generate_man_html.sh. I did a lot of massaging of its output with regex find-and-replacing.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].