您的位置:首页 > 运维架构 > Shell

Shell文本处理

2016-04-07 22:53 489 查看
最优秀的文档是manual,通过man命令来学习一条命令是最为全面的方法。

例如对于find,网上很多教程但都没有抓住要点,manual结构清晰,重点分明。

 

学习一条命令,首先明确其基本功能和结构,man手册中开始部分的Name和Synopsis写得很清楚;其次是参数,熟练掌握常见的参数,这部分要通过多用这条命令来练习以加深印象。

 

一、find

find分为三部分,起始目录,options,expressions。

find [-H][-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]

简单来说,以起始目录为分割点,前面为五个options,后面为expressions。

 

-H-L-P是和link相关的选项,-D用于调试,-Olevel选择优化等级。这五个options一般不用关心。

 

Expressions分为Actions,Global Options,PositionalOptions,Operators.

Actions:顾名思义,就是执行的动作,常用的比如-exec执行其他程序。

GlobalOptions:全局选项,比如-maxdepth 1指定最大深度为1。

PositionalOptions:这个是最常用的部分,用来指定匹配规则等:-regex"" -name "" -regextype "" Operators:用来表示逻辑操作,组合复杂的条件,-and -or

 

find的结构如上所述,5个options,起始目录,再加上4类expressions。一般来说熟悉匹配规则和执行的动作怎么写就够了。

二、grep

grep[OPTIONS] PATTERN [FILE...]

常用参数

-o 只输出匹配的文本行

-v 只输出没有匹配的文本行

-c 统计文件中包含文本的次数

-n 打印匹配的行号

-i 搜索时忽略大小写

-l 只打印文件名

三、xargs

xargs -build and execute command lines from standard input

 

xargs  [-0prtx] [-E  eof-str]  [-e[eof-str]] [--eof[=eof-str]]  [--null]  [-d delimiter]  [--delimiterdelimiter] [-I replace-str] [-i[replace-str]] [--replace[=replace-str]][-l[max-lines]] [-L max-lines] [--max-lines[=max-lines]] [-n max-args][--max-args=max-args]
[-s max-chars] [--max-chars=max-chars]  [-P max-procs] [--max-procs=max-procs] [--process-slot-var=name] [--interactive] [--verbose] [--exit] [--no-run-if-empty][--arg-file=file] [--show-limits] [--version] [--help] [command[initial-arguments]]

xargs将输入数据转化为特定命令的命令行参数,这样可以配合很多命令来组合使用。

四、sort

sort - sortlines of text files

       sort [OPTION]... [FILE]...

       sort [OPTION]... --files0-from=F

-n 按数字进行排序

-d 按字典序进行排序

-r 逆序排序

-k N 指定按第N列排序

五、uniq

 uniq - report or omit repeated lines

       uniq [OPTION]... [INPUT [OUTPUT]]

六、tr

tr -translate or delete characters

       tr [OPTION]... SET1 [SET2]

七、cut

cut -remove sections from each line of files

       cut OPTION... [FILE]...

八、paste

 paste - merge lines of files

       paste [OPTION]... [FILE]...

九、awk

gawk -pattern scanning and processing language

       gawk [ POSIX or GNU style options ] -fprogram-file [ -- ] file ...

       gawk [ POSIX or GNU style options ] [ --] program-text file ...

 

       pgawk [ POSIX or GNU style options ] -fprogram-file [ -- ] file ...

       pgawk [ POSIX or GNU style options ] [-- ] program-text file ...

 

       dgawk [ POSIX or GNU style options ] -fprogram-file [ -- ] file …

awk脚本结构

awk ' BEGIN{ statements } statements2 END{ statements} '

工作方式

1.执行begin中语句块;

2.从文件或stdin中读入一行,然后执行statements2,重复这个过程,直到文件全部被读取完毕;

3.执行end语句块;

十、sed

sed -stream editor for filtering and transforming text

       sed [OPTION]...{script-only-if-no-other-script} [input-file]...

十一、wc

wc - printnewline, word, and byte counts for each file

       wc [OPTION]... [FILE]...

       wc [OPTION]... --files0-from=F
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell