Awk/Sed for humans.
Project description
The Atmark – Awk+sed for humans.
Do this:
# Rename a files in current directory (file-name -> file_name.jpg) $ ls | @ sub - _ "mv # @.jpg" | sh
Except this:
# Rename a files in current directory (file-name -> file_name.jpg) $ ls | awk '{print $1 $1}' | sed s/"-"/"_"/ | awk '{print "mv", $2, $1, ".jpg"}' | sh
More deep:
$ ls | @ sub - _ "mv # @.jpg" | sh --- | | ------------ | | | \_ format string (# - link on first state, | | | @ - link on current state (after replace)) | | | | | \_ second replace param (to replace) | | | \_ first replace param (what replace) | \_ function name (substitute)
More examples:
Change file’s extension .html > .php
# Atmark $ ls | @ split . head "mv # @.php" # Awk/Sed $ ls | awk '{printf "mv "$0; sub(/html/,"php"); print " "$0}' | sh
Print all but the first three columns
# Atmark (\\t means tab) $ ls -la | @ split_ drop 3 join \\t # Awk/Sed $ ls -la | awk '{for(i=1;i<4;i++) $i="";print}'
Kill process by name
# Atmark $ ps aux | @ grep sysmond$ index 2 "kill @" | sh # Awk/Sed $ ps aux | grep [s]ysmond | awk '{print "kill "$2}' | sh
And more, more, more.
Docs are available at https://atmark.readthedocs.org/. Pull requests with documentation enhancements and/or fixes are awesome and most welcome.
Requirements
python >= 2.6
Installation
The Atmark should be installed using pip:
pip install atmark
Usage
Get help
$ @ -h Atmark (@) -- is a command line utility for parsing text input and generating output. You can pipe data within a Atmark (@) statement using standard unix style pipes ("|"). Provide for Atmark function composition and let them work for you. Example. Replace "_" with "-" in files in current dir and change the files extensions to jpg: $ ls | @ sub _ - split . "mv # @.jpg" It is mean: $ ls > sub($LINE, "_", "-") > split($RESULT, ".") > format($RESULT, "mv $LINE $RESULT.jpg") You can use "@ --debug ARGS" for debug Armark commands. =================================================================================== LIST OF THE BUILT IN FUNCTIONS format PATTERN -- format and print a string. Symbol '@' in PATTERN represents the current value in process of composition of fuctions. Symbol '#' in PATTERN represents the history state. Where # or #0 -- first state, #<n> (#1, #2) -- state with number n Synonyms: You can drop `format` function name. This lines are equalent: $ ls | @ upper format "@.BAK" $ ls | @ upper "@.BAK" capitalize/cap -- capitalize the string. drop N -- drop N elements from list/string. filter/if -- filter results by value has length grep/g REGEXP -- filter results by REGEXP head/h -- extract the first element/character of a list/string index/ix/i N -- get the N-th element/character from list/string. join/j SEPARATOR -- concatenate a list/string with intervening occurrences of SEPARATOR join_/j_ -- same as join but SEPARATOR set as ' ' last -- get last element/character of incoming list/string. length/len -- return length of list/string. lower/l -- make the string is lowercase map FUNCTION -- apply the following function to each element/character in list/string. replace/sub/r FROM TO -- replace in a string/list FROM to TO. reverse -- reverse list/string. rstrip/rs/rtrim PATTERN -- return the string with trailing PATTERN removed. sort -- sort list/string. split/sp SEPARATOR -- return a list of the substrings of the string splited by SEPARATOR split_/sp_ -- same as split by splited a string by whitespace characters strip/s/trim PATTERN -- return the string with leading and trailing PATTERN removed. strip_/s_/trim_ -- same as split by trim a string by whitespace characters tail/t -- extract the elements after the head of a list take N -- take N elements from list/string. upper/u -- make the string is uppercase
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/atmark/issues
Contributing
Development of starter happens at github: https://github.com/klen/atmark
Contributors
klen (Kirill Klenov)
License
Licensed under a BSD license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file atmark-0.5.1.tar.gz
.
File metadata
- Download URL: atmark-0.5.1.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c8b7a8af8a41030a548bdff3ee26d3d5dfd0872fac69e9273f1d415c3769bd9 |
|
MD5 | bb76d30bf69332cbc25df6ccff41d85e |
|
BLAKE2b-256 | d7ab37b7247b9aa0c93a46aae143f506ea99d40117015606f023b141cfc3c8af |