文本处理工具-2

简介:

文本处理工具—2

  之前已将写了5种文本处理工具,接着再写4种,有兴趣的可以先看一下之前的博客

   C_0017.gif文本处理工具—1C_0017.gif


目 

6、paste

7wc

8sort

9cut

练习



6paste

1paste file1 file2 [file3]  可以合并多个文件,文件之间用空格隔开

想到把两个文件合并显示,我们可能会想到复制再追加

cat f1>>f2  f2就是将原先的f2f1 合并

但是原本的f2就丢失了,当然我们可以先把f2备份,但是太麻烦了

paste f1 f2    可以合并多个文件显示,但原先的文件并不会合并,我们测试一下

wKioL1l9loiS9iErAAArET63JrU741.png

可以是将两个文件行数一样的显示在了一行,但不会改变原文件

2paste -s f2 将文件内容变成一行显示

wKiom1l9lpmhjY4XAAANay1frrk257.png

f2 文件内容变成一行显示,用之前的tr '\n' '\t'也可以实现也可以用

wKiom1l9lqOzYlOgAAASBE9vQW0458.png

至于这里为什么将是将换行符\n转换成TAB \t

是因为,paste是默认将两个文件合并在一起用TAB符间隔,我们也可以指定其他的符号

3paste –df1 f2  指定合并后的分隔符

wKiom1l9lsTAaelRAAAVeV5q548215.png

当然还可以用等隔开,可以在自己的虚拟机上试试

7wc

  这里的wc可不是那个wc 而是 word count

1wc -m 字符数

wKioL1l9ltLSMtDDAAAL0IB_LiQ250.png

因为每行后的换行符也占用了一个字符

那么把换行符去掉呢

echo -e  "abcd\c"|wc-m

wKioL1l9lt-C5TsxAAARzIc62pQ159.png

去掉换行符便是4个字符

2-c 字节

echo abcd|wc -c

wKiom1l9lvnTDyLIAAAL1FWr16M105.png

  也是5个字符,那么字节和字符有什么不同呢,我们举个汉字例子试试吧

 

wKioL1l9lwTQDVwxAAARrXgUAY4668.png

可以看出,去除换行符的占位,一个汉字是一个字符,确是占三个字节,这里的汉字所占字节在不同编码中也不同。可以查看下面的链接

字符与字节的不同

3wc – w 单词数

wKiom1l9lxCC1zl0AAAO1U8KrKc010.png

4wc –l 显示行数

wKioL1l9lx-D89PtAAAbRzqNCyw393.png

5)单独的wc显示以下信息

wc 行数 单词数 字节

   -l  -w   -c

wKioL1l9lyqxp-M3AAAhasb01i0396.png

8、cut

1cut 剪切的意思

-d 指定分隔符 (默认TAB

-f 选取第几列

      n     n

      n-r    n列到第r

      nm-r  n列;第m列到第r

   只说概念大家也不明白,我们举例子说明

我只想取出/etc/paswd中的用户名,即文件的第一列该怎样取出呢,用到上面的两个选项。

wKioL1l9oG7CTGx-AABmO2v8Ors973.png

我们可以看到各个信息之间用:隔开,我们想要的信息在第一列,你是否想到了什么

是的,cat/etc/passwd|cut -d: -f1

wKiom1l9oHqRw9T7AABCIXEpxg4840.png

当然我想选前两行呢

wKioL1l9oIbCLedRAABEKq5j8IM735.png

2-c 按字符截取

n      n

n-r      n列到第r

nm-r     n列;第m列到第r

wKiom1l9oJXz10HWAAAXSRO23q0268.png

3--output-delimiter  指定输出符

通过之前的截取可以看出文件中各列以什么字符隔开,就显示什么字符,而--output-delimiter  可以指定输出符

cut -d: -f1,3 --output-delimiter='|' /etc/passwd

wKioL1l9oKKz8hHDAAA2N1K5j_8329.png

9、sort

1sort 顾名思义就是整理分类的意思

wKioL1l9pjLRbvgzAAA2Ia0Qqz8143.png

2-r 执行反方向(由上至下)整理 ,与sort恰恰相反

 wKiom1l9pj6zKJcLAAA2MFutXgo200.png

3-n 执行按数字大小整理,从大到小排列

 wKiom1l9pkmCD7cUAAAWN5VOEiQ789.png

我们也可以组合用cat a.txt|sort -nr

wKiom1l9plWj7O-cAAAd_AU1zRs813.png

  4sort -u 选项(独特,unique)删除输出中的重复行

 wKiom1l9pmCTqBefAAA3_G-fNr8062.png

 5-t c 选项使用c做为字段界定符   -t:   -t% 

       -kX 选项按照使用c字符分隔的X列来整理

 这两个选项经常一块使用

  例如:/etc/passwd 按照第3列从大到小排列

 wKioL1l9pmyjPjK4AAB__azFMBs355.png

练习

 结合以上所有文本处理工具做几道练习题

1.找出分区利用率最大的值

                 df|tr -s ‘  ‘%|cut -d% -f5|sort -t% -k1-nr|head -n 1

wKioL1l9qGXi6nz3AAA15RAsqI4765.png

2.查出用户UID最大值的用户名、UIDshell类型

   cat /etc/passwd|cut -d: -f1,3,7|sort -t:-k2 -nr|head -n 1

wKioL1l9qiiSSeyfAABBzabufWY301.png


还是那句话,知识是探索的,各个命令,工具相结合才能发挥大作用C_0019.gif


本文转自 hawapple 51CTO博客,原文链接:http://blog.51cto.com/guanm/1952121


相关文章
|
5月前
|
数据采集 监控 Python
Python 正则表达式:强大的文本处理工具
Python 正则表达式:强大的文本处理工具
|
7月前
|
数据采集 监控 数据处理
九、正则表达式详解:掌握强大的文本处理工具(一)
九、正则表达式详解:掌握强大的文本处理工具(一)
|
7月前
|
数据采集
十、正则表达式详解:掌握强大的文本处理工具(二)
十、正则表达式详解:掌握强大的文本处理工具(二)
|
7月前
|
数据采集 搜索推荐 算法
十一、正则表达式详解:掌握强大的文本处理工具(三)
十一、正则表达式详解:掌握强大的文本处理工具(三)
|
9月前
|
人工智能 IDE 搜索推荐
ChatGPT写python脚本,轻松搞定文本处理
ChatGPT写python脚本,轻松搞定文本处理
157 0
|
机器学习/深度学习 自然语言处理 搜索推荐
基本文本处理 1|学习笔记
快速学习基本文本处理 1
52 0
基本文本处理 1|学习笔记
|
自然语言处理 开发者 数据格式
基本文本处理 3|学习笔记
快速学习基本文本处理 3
59 0
基本文本处理 3|学习笔记
|
自然语言处理 定位技术 开发者
基本文本处理 2|学习笔记
快速学习基本文本处理 2
73 0
基本文本处理 2|学习笔记
|
监控 Linux C#
文本处理命令 | 学习笔记
快速学习文本处理命令。
|
监控
文本处理工具
时间:2017.11.21 作者:李强 参考:man,info,magedu讲义 声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
565 0