Shell文本处理

最优秀的文档是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值