加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

搞定 Linux Shell 文本处理工具,看完这篇集锦就够了

发布时间:2019-10-16 09:35:55 所属栏目:建站 来源:大CC
导读:Linux Shell是一种根基功,因为独特的语法加之较差的可读性,凡是被Python等剧本取代。既然是根基功,那就必要把握,事实进修Shell剧本的进程中,照旧能相识到许多Linux体系的内容。 Linux剧本人人不是大家都可以到达的,可是用一些简朴的Shell实现一些常

eg:统计措施行数

  1. find source_dir/ -type f -name "*.cpp" -print0 |xargs -0 wc -l 

 4、sort 排序

字段声名:

-n 按数字举办排序 VS -d 按字典序举办排序

-r 逆序排序

-k N 指定按第N列排序

eg:

  1. sort -nrk 1 data.txtsort -bd data // 忽略像空格之类的前导空缺字符 

 5、uniq 消除一再行

消除一再行

  1. sort unsort.txt | uniq 

统计各行在文件中呈现的次数

  1. sort unsort.txt | uniq -c 

找出一再行

  1. sort unsort.txt | uniq -d 

可指定每行中必要较量的一再内容:-s 开始位置 -w 较量字符数

 6、用tr举办转换

通用用法

  1. echo 12345 | tr '0-9' '9876543210' //加解密转换,替代对应字符  cat text| tr '   ' ' '  //制表符转空格 

tr删除字符

  1. cat file | tr -d '0-9' // 删除全部数字 

-c 求补集

  1. cat file | tr -c '0-9' //获取文件中全部数字  cat file | tr -d -c '0-9 

'  //删除非数字数据

tr压缩字符

tr -s 压缩文本中呈现的一再字符;最常用于压缩多余的空格

  1. cat file | tr -s ' ' 

字符类

tr中可用各类字符类:

alnum:字母和数字

alpha:字母

digit:数字

space:空缺字符

lower:小写

upper:大写

cntrl:节制(非可打印)字符

print:可打印字符

行使要领:tr [:class:] [:class:]

  1. eg: tr '[:lower:]' '[:upper:]' 

 7、cut 按列切分文本

截取文件的第2列和第4列:

  1. cut -f2,4 filename 

去文件除第3列的全部列:

  1. cut -f3 --complement filename 

-d 指定定界符:

  1. cat -f2 -d";" filename 

cut 取的范畴

N- 第N个字段到末了

-M 第1个字段为M

N-M N到M个字段

cut 取的单元

-b 以字节为单元

-c 以字符为单元

-f 以字段为单元(行使定界符)

eg:

  1. cut -c1-5 file //打印第一到5个字符  cut -c-2 file  //打印前2个字符 

 8、paste 按列拼接文本

将两个文本按列拼接到一路;

  1. cat file112cat file2colinbookpaste file1 file21 colin2 book 

默认的定界符是制表符,可以用-d指明定界符

paste file1 file2 -d ","

1,colin

2,book

 9、wc 统计行和字符的器材

wc -l file // 统计行数

wc -w file // 统计单词数

wc -c file // 统计字符数

 10、sed 文本替代利器

首处替代

  1. seg 's/text/replace_text/' file   //替代每一行的第一处匹配的text 

全局替代

  1. seg 's/text/replace_text/g' file 

默认替代后,输出替代后的内容,假如必要直接替代原文件,行使-i:

  1. seg -i 's/text/repalce_text/g' file 

移除空缺行:

  1. sed '/^$/d' file 

变量转换

已匹配的字符勾串过标志&来引用.

  1. echo this is en example | seg 's/w+/[&]/g'$>[this]  [is] [en] [example] 

子串匹配标志

第一个匹配的括号内容行使标志  来引用

  1. sed 's/hello([0-9])//' 

双引号求值

sed凡是用单引号来引用;也可行使双引号,行使双引号后,双引号会对表达式求值:

  1. sed 's/$var/HLLOE/' 

当行使双引号时,我们可以在sed样式和替代字符串中指定变量;

  1. eg:p=pattenr=replacedecho "line con a patten" | sed "s/$p/$r/g"$>line con a replaced 

其余示例

字符串插入字符:将文本中每行内容(PEKSHA) 转换为 PEK/SHA

sed 's/^.{3}/&//g' file

 11、awk 数据流处理赏罚器材

awk剧本布局

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

事变方法

1.执行begin中语句块;

2.从文件或stdin中读入一行,然后执行statements2,一再这个进程,直到文件所有被读取完毕;

3.执行end语句块;

print 打印当前行

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读