linux下文本处理工具下载,linux下几种常用的文本处理工具

1.几种常见的文本处理命令

1.cat

cat我们在早期的学习中最常见的命令之一,但我们用到的只是cat命令本身,如cat /etc/passwd,查看/etc/passwd 的内容,没有用到cat的选项,其实cat命令是有选项的,只不过我们用的并不多,具体参数如下:

先用vim编辑一个简单的文本,helloworld,内容即是helloworld,这里只是为了展示,具体vim的用法会在下面介绍。

cat /app/block/helloworld //查看helloworld文本内容

93a287a9abdccaecdf0d0e238ea4b1e7.png

-E查看文本时显示文本中的liux换行符$

cat /app/block/helloworld //显示helloworld中的换行符$

5e1f800e3109959fec38b353e86ac60b.png

-v查看windows文本时显示Windows中的换行符^M

使用rz命令上传windows系统中的helloworld.txt到/app/block下。

cat /app/block/helloworld.txt //显示helloworld.txt中的换行符^M

7ca9db01b11f732c24ab9f0b02c1382b.png

-T显示Tab

cat -T /app/block/helloworld //显示helloworld中的Tab

24fa1f172e42a4f4b0ffe8b508b8e5c5.png

-n显示的结果前增加行号

cat -n /app/block/helloworld //显示的helloworld中增加行号

c2d1119a3c3adca511bc1873863a7f29.png

-b显示的结果之前增加行号,但空行不参加编号

cat -b /app/block/helloworld //helloworld中的空行不编号

edac4f692cf1a0ec584f889192ab3d5d.png

-s压缩连续空行成一行

需要在文本后加入几个空行

cat -s /app/block/helloworld //压缩helloworld中连续空行为一行

b5963c6eb9cb47f7b19629ef2e406576.png

2.tac

tar命令的功能只有一个,即是将文本中的内容倒序显示

tac /app/block/helloworld //倒序显示helloworld

48d26f81186e41351414a1eba82af790.png

3.rev

rev的功能也只有一个,即是对标准输入的内容每行倒着显示,支持管道。

cat /app/block/helloworld|rev //helloworld每行倒着显示

32043d7d65c8cc812ccae50be0058925.png

4.head

head有两个常用的参数,head是头的意思,就是对文本头部分进行的操作。

-n 打印文本开头的n行

cat /app/block/helloworld|head -1 //打印helloworld的第一行

3ce3f588e6922a74ffcbfe34769e490d.png

-c n 取一段字符的前n字节

echo helloworld|head -c 5 //取helloworld的前5个字节

0278d75679b641513036a7c310596d29.png

5.tail

tail与head相似,同样有两个常用的参数,但tail是尾巴的意思,就是对文本尾部进行操作。

-n 打印文本结尾的n行

cat /app/block/helloworld|tail -1 //打印helloworld的最后一行

06a6fc78eb6f67fbb42cf4f428e4537b.png

-c n 取一段字符的后n字节

echo helloworld|tail -c 5 // 取helloworld的后5个字节

7e24a4c58dc3b71cff06ec75627b59ce.png

tail取最后n个字符包含换行符$.

6.cut

cut即是剪切的意思,剪切文本中的内容,一般常用的选项有四个,而,-d,-f,一般连用

-d+参数1(d +中间没空格)-f+参数2 以参数1作为分割符,剪切第参数2列

hellow文本

8f0ec5ed9edbbdc85e81a81e298ec3e2.png

cat /app/block/helloworld|cut -d' ' -f1 //取出helloworld中以空格为间隔的第一列

747f964644a985d9eb06b6e575243244.png

-f选项后可以指定一个范围,并不一定是一个参数,如:

cat /app/block/helloworld|cut -d' ' -f1-3, 5 //取出helloworld中以空格为间隔的第一列到第三列和第5列

5ecabf7b48df0837de0f11ba17417b86.png

-c m/m-n/m-n,k取出字符串中第m/m-n/m-n,k字符

echo hi hello world i am fun|cut -c 1-3,5 //显示字符串中第1-3,和第五个字符

83519bf5f0e5259eada0ec47a50e7d1e.png

cut --output-delimiter="#" 输出分隔符

7.past

paste命令的功能是用来合并,可以单独使用,也可以配合选项使用,有两个选项

paste /app/block/helloworld /app/block/helloworld.txt //合并helloworld和helloworld.txt

d10c48595ae1e69205324441e68ea050.png

-d'Q' f1 f2 合并后以Q作为分隔符,Q可以是任何字符

paste -d'|' /app/block/helloworld /app/block/helloworld.txt //合并helloworld和helloworld.txt,并用|作为间隔符

7916f471d1aec4df3cc713723207f36f.png

-s 将多行内容多行变一行

paste -s /app/block/helloworld //将helloworld中的多行内容变为一行

7917d0bb6c6ce4ab25a10cccb876a51e.png

8.wc

-l 显示文本的行数

cat /app/block/helloworld|wc -l //显示helloworld的行数

3c5eaaf7b6e347ea1bcd5227db5b9a96.png

-m 显示文本中的字符数

cat /app/block/helloworld |wc -m //显示helloworld中的字符数

dbbf70b59dca3369b6e617b02f726fd2.png

-c 显示文本中的字节数

cat /app/block/helloworld |wc -c //显示helloworld中的字节数

3a176f66e193cd04b6cdb3723f33a80b.png

-w 显示文本中单词数

cat /app/block/helloworld |wc -w //显示helloworld中的单词数

80d6e40a338f9ec259558a90f6c8c6db.png

-L 显示文本中最长行的长度

cat /app/block/helloworld |wc -L //显示helloworld中最长行的长度

9ce80e4bbe554187eb5c0cafa5a9fd4e.png

2.文本三剑客之grep

grep是一个对文本进行过滤的的文本处理工具,只能过滤出内容,他有下面这些选项:

-v 关键字 显示不包含关关键字的行,取反

cat /app/block/helloworld|grep -v hello //过滤出不包含hello的行

744a527c7d141b73e32470ff9dee8406.png

-i 关键字 忽略关键字的大小写

cat /app/block/helloworld|grep -i hello //过滤出hello,并且不区分其中字母的大小写

00ab811088c0974ab11fa61f1ae341ae.png

-n 显示的结果每行前增加行号

cat /app/block/helloworld |grep -n hello //过滤出含有hello的行,并且在结果上加上行号

69c236fdf60df4a9acf725badb59d994.png

-c 仅显示找出的结果的行数

cat /app/block/helloworld |grep -c hello //过滤hello但不现实结果,只显示过滤出hello的行数

c9be79c076bedc02c1440e8635945fd0.png

-o 仅显示匹配到的关键字,不显示同行的其他内容

cat /app/block/helloworld |grep -o hello //只显示过滤出的关键字hello,不现实其他的内容

84c8aaff26b8b587b5291524e5d02596.png

-A # 显示关键字行及向下的n行

cat /app/block/helloworld |grep -A2 hello //过滤出包含hello的行以及其下一行

ab46a7c8122a218f55c6a1ee8f984cc5.png

-B # 显示关键字行及向上的n行

cat /app/block/helloworld |grep -B hello //过滤出包含hello的行以及上一行

3cc99906d562b1ef0f71732f0760f376.png

-C # 显示关键字行及向上n行和向下的n行

cat /app/block/helloworld |grep -C1 hello //过滤出包含hello的行以及其下一行和上一行

7a892ee0884c0e630ec5582ebf7f6933.png

-e 关键字1 -e 关键字2 …… 多个关键字之间是或的关系

cat /app/block/helloworld |grep -e hello -e Hello //过滤出包含hello或者Hello的行

f935a3a95c7fe46e17764c977740c2da.png

-w 关键字 匹配整个单词

cat /app/block/helloworld |grep -w hello //过滤出只含有hello单词的行

753b30cb3abde3781cbb5c073bbaf2ad.png

-E 等于egrep 使用扩展正则表达式

加上-E或者使用egrep过滤即表示使用扩展正则表达

-F 等于fgrep 不使用正则表达式

正则表达式在下篇博客会具体介绍。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值