Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/klen/atmark
Awk+Sed for humans
https://github.com/klen/atmark
Last synced: 3 months ago
JSON representation
Awk+Sed for humans
- Host: GitHub
- URL: https://github.com/klen/atmark
- Owner: klen
- License: bsd-3-clause
- Created: 2014-06-19T23:55:33.000Z (over 10 years ago)
- Default Branch: develop
- Last Pushed: 2014-07-10T14:25:31.000Z (over 10 years ago)
- Last Synced: 2024-08-02T00:04:49.596Z (4 months ago)
- Language: Python
- Size: 397 KB
- Stars: 69
- Watchers: 6
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: Changelog
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
README
The Atmark
##########.. _description:
The Atmark -- Awk+sed for humans.
Do this: ::
# Rename a files in current directory (file-name -> file_name.jpg)
$ ls | @ sub - _ "mv # @.jpg" | shExcept 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"}' | shMore 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}' | shPrint 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}' | shAnd more, more, more.
.. _badges:
.. image:: https://secure.travis-ci.org/klen/atmark.png?branch=develop
:target: http://travis-ci.org/klen/atmark
:alt: Build Status.. image:: https://coveralls.io/repos/klen/atmark/badge.png?branch=develop
:target: https://coveralls.io/r/klen/atmark?branch=develop.. image:: https://pypip.in/d/atmark/badge.png
:target: https://pypi.python.org/pypi/atmark.. image:: https://badge.fury.io/py/atmark.png
:target: http://badge.fury.io/py/atmark.. _documentation:
**Docs are available at https://atmark.readthedocs.org/. Pull requests
with documentation enhancements and/or fixes are awesome and most welcome.**.. _contents:
.. contents::
.. _requirements:
Requirements
=============- python >= 2.6
.. _installation:
Installation
=============**The Atmark** should be installed using pip: ::
pip install atmark
Bash completion
---------------Atmark supports bash completion. Just add this lines to your `.bashrc`: ::
_atmark_complete() {
COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" \\
COMP_CWORD=$COMP_CWORD \\
_ATMARK_COMPLETE=complete $1 ) )
return 0
}complete -F _atmark_complete -o default @ @@;
You can easy do it with command: ::
@ -bs >> ~/.bashrc
.. _usage:
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 | @ replace _ - split . "mv # @.jpg"
It is mean:
$ ls > replace($LINE, "_", "-") > split($RESULT, ".") > format($RESULT, "mv $LINE $RESULT.jpg")
You can use "@ --debug ARGS" for debug Armark commands.
===================================================================================
LIST OF THE BUILT IN FUNCTIONSformat FORMAT_STRING -- format and print a string.
Symbol '@' in FORMAT_STRING represents the current value in process of composition of fuctions.
Symbol '#' in FORMAT_STRING represents the history state.
Where # or #0 -- first state, # (#1, #2) -- state with number nSynonyms: 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.
equal/== PATTERN -- return None if arg is not equal to PATTERN.
filter/if -- filter results by value has length
head/h -- extract the first element/character of a list/string
index/ix 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 ' '
kill REGEXP -- replace in a string/list REGEXP to ''.
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.
nocolor/nc -- Remove ansi colors from string.
notequal/!= PATTERN -- return None if arg is equal to PATTERN.
notgrep/ng REGEXP -- filter results by REGEXP. Leave ungrepped
replace/r/sub FROM TO -- replace in a string/list FROM to TO.
reverse/rev -- reverse list/string.
rstrip/rs/rtrim PATTERN -- return the string with trailing PATTERN removed.
grep/g REGEXP -- filter results by REGEXP
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 strip but trims a whitespaces.
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.
.. _bugtracker:
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:
Contributing
============Development of starter happens at github: https://github.com/klen/atmark
Contributors
=============* klen_ (Kirill Klenov)
.. _license:
License
========Licensed under a `BSD license`_.
.. _links:
.. _BSD license: http://www.linfo.org/bsdlicense.html
.. _klen: http://klen.github.com/