shell-文本处理工具

shell文本处理工具

sort命令:sort [ options ] [ files ]
options:

    -b:忽略每行前面开始出的空格字符; 
    -c:检查文件是否已经按照顺序排序; 
    -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符; 
    -f:排序时,将小写字母视为大写字母; 
    -i:排序时,除了040176之间的ASCII字符外,忽略其他的字符; 
    -k: 定义排序键值字段
    -m:将几个排序号的文件进行合并; 
    -M:将前面3个字母依照月份的缩写进行排序; 
    -n:依照数值的大小排序;
    -o outfile : 将输出写到指定的文件
    -r :倒置排序,顺序为由大到小
    -t char :使用单个字符char作为默认的字段
    -u: 只有唯一的记录

以字段排序
排序键值字段的类型

b 忽略开头的空白
d 字典顺序
f 不区分字母的大小写
g 以一般的符点数字进行比较,只适用GNU版本
i 忽略无法打印的字符
n 以(整数)数字比较
r 倒置排序的顺序

# -k2.4,5.6 指的是从第二个字段的第四个字符开始比较,一直比到第五个字段的第六个字符
eg:sort -t: -k1,1 /etc/passwd #用 ':'隔开字段,然后以第一个字段,第一个字符开始比较
eg:sort -t: -k3nr /etc/passwd #制定字段分隔符':',以第三个字段,开始nr比较
eg:sort -t: -k4n -k3n /etc/passwd #第四字段,第三字段比较

删除重复:

sort latin.txt | uniq #显示唯一的、排序后的记录,重复则仅显示唯一的行
sort latin.txt | uniq -c #记数唯一的、排序后的记录
sort latin.txt | uniq -d #仅仅显示重复记录
sort latin.txt | uniq -u #仅仅显示未重复的记录

fmt命令:
基本语法:fmt [options] [parameter]
options:

-c或--crown-margin:每段前两列缩排; 
-p<列起始字符串>或-prefix=<列起始字符串>:仅合并含有指定字符串的列,通常运用在程序语言的注解方面; 
-s或--split-only:只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列; 
-t或--tagged-paragraph:每列前两列缩排,但第1列和第2列的缩排格式不同; 
-u或--uniform-spacing:每列字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔; 
-w<每列字符数>或--width=<每列字符数>或-<每列字符数>:设置每列的最大字符数。

eg:sed -n -e 9991,10010p /usr/share/dict/words | fmt #截取文件的20行,然后重新格式化20个单词
eg:sed -n -e 9991,10010p /usr/share/dict/words | fmt -w 30#设置每行显示的字符数最大为30

计算行数、字数以及字符数,WC命令
基本语法:wc [options]
options:

-c :计算字节数 eg:cat /etc/passwd | wc -c
-l :计算行数
-w :计算字符

提取开头或结尾数行。head命令,以及相关用法

head –c n [file]  #显示file文件的前n个字符
head –n n [file]  #取file前n行
head –n  [file]  # eg:head -3 test.txt,取前三行
head –v [file]   #显示文件的头信息
head –q [file]   #不显示文件的头信息
awk 'FNR <= n' [file] #取前n行
sed –e nq [file] 
sed nq [file]

提取结尾的行:

tail –n n [file]
tail –n file
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值