I often have to make changes to text files by processing each line, and prefer to do that with Python. This is why I wrote this tool about a year ago, and publish it now in preparation of a blog post on Bash Bunny.
The man page:
Usage: python-per-line.py [options] expression [[@]file ...]
Program to evaluate a Python expression for each line in the provided text file(s)
Arguments:
@file: process each file listed in the text file specified
wildcards are supported
Source code put in the public domain by Didier Stevens, no Copyright
Use at your own risk
https://DidierStevens.com
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-m, --man Print manual
-o OUTPUT, --output=OUTPUT
Output to file
-s SCRIPT, --script=SCRIPT
Script with definitions to include
Manual:
This program reads lines from the given file(s) or standard input, and
then evaluates the provided Python expression on each line of text and
outputs the result of the Python expression.
The Python expression needs to use {} to represent the content of each
line. Before evaluation, {} is replaced by the content of each line
surrounded by single quotes.
The value of the evaluated expression is outputed as a single line,
except when the Pythion expression returns a list. In that case, each
element of the list is outputed on a single line.
Example:
Content test.txt:
Line 1
Line 2
Line 3
Command:
python-per-line.py "'copy ' + {}" test.txt
Output:
copy Line 1
copy Line 2
copy Line 3
This program contains a predefined Python function to help with the
generation of Rubber Ducky scripts: Duckify.
Example:
Content test.txt:
Line 1
Line 2
Line 3
Command:
python-per-line.py "Duckify({})" test.txt
Output:
STRING Line 1
ENTER
STRING Line 2
ENTER
STRING Line 3
ENTER
The lines are written to standard output, except when option -o is
used. When option -o is used, the lines are written to the file
specified by option -o.
An extra Python script (for example with custom definitions) can be
loaded using option -s.
python-per-line_V0_0_1.zip (https)
MD5: B7C1146D44D6B3F8B04C571E8C205191
SHA256: 6D7931B33F8A1D81539E892897D301145A63502A181B2B89A01466D599D53787
[…] then I create a Ducky Script script from the PDF with my python-per-line.py […]
Pingback by Bash Bunny PDF Dropper | Didier Stevens — Monday 24 April 2017 @ 0:00
[…] New Tool: python-per-line […]
Pingback by Overview of Content Published In April | Didier Stevens — Wednesday 3 May 2017 @ 0:00
[…] python-per-line is a tool to apply a Python expression on each line of input. […]
Pingback by Update: python-per-line.py Version 0.0.2 | Didier Stevens — Sunday 23 July 2017 @ 19:49