适用于人类的Awk/Sed。
项目描述
Atmark – 适用于人类的Awk+sed。
这样做
# Rename a files in current directory (file-name -> file_name.jpg) $ ls | @ sub - _ "mv # @.jpg" | sh
除了这个
# 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
更深层次
$ 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)
更多示例
更改文件扩展名 .html > .php
# Atmark
$ ls | @ split . head "mv # @.php"
# Awk/Sed
$ ls | awk '{printf "mv "$0; sub(/html/,"php"); print " "$0}' | sh
打印除前三个列之外的所有列
# Atmark (\t means tab)
$ ls -la | @ split_ drop 3 join \t
# Awk/Sed
$ ls -la | awk '{for(i=1;i<4;i++) $i="";print}'
按名称杀死进程
# Atmark
$ ps aux | @ grep sysmond$ index 2 "kill @" | sh
# Awk/Sed
$ ps aux | grep [s]ysmond | awk '{print "kill "$2}' | sh
还有更多,更多,更多。
文档可在 https://atmark.readthedocs.org/ 找到。带有文档增强和/或修复的拉取请求很棒,非常受欢迎。
需求
- python >= 2.6 
安装
Atmark 应使用pip安装
pip install atmark
Bash完成
Atmark支持bash完成。只需将这些行添加到您的 .bashrc
_atmark_complete() {
    COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" \\
                COMP_CWORD=$COMP_CWORD \\
                _ATMARK_COMPLETE=complete $1 ) )
    return 0
}
complete -F _atmark_complete -o default @ @@;
您可以使用命令轻松完成它
@ -bs >> ~/.bashrc
使用
获取帮助
$ @ -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 FUNCTIONS
format 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, #<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.
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.
错误追踪
如果您有任何建议、错误报告或烦恼,请向https://github.com/klen/atmark/issues 的问题跟踪器报告
贡献
入门项目在github上开发: https://github.com/klen/atmark
贡献者
- klen (Kirill Klenov) 
许可证
在BSD许可证下授权。
项目详情
    
       关闭
    
      
        
    
    
  
atmark-0.7.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | d9b5c3dba640b16b00a3fc6a62b1c32b7802794906d1bf100ea835d295eeb0e0 | |
| MD5 | 8c4c206058e00678db34ae215926269e | |
| BLAKE2b-256 | 9642921ba87dd97a4ff2727f1a549a81cba770b45b4f8807cd25dcb448bd6248 |