linux中常用文本处理命令

本文介绍Linux下使用wc、awk、sed、grep等命令进行文本处理的方法,包括统计、筛选、替换、查找等功能,适用于数据清洗与分析。

Linux中文本处理命令,本文以“henu.txt”文件为例

1、wc命令:对文件行、字数(单词)、字符数做简单统计

参数(-l:仅列出行; -w:仅列出多少字(英文单字); -m:多少字符;)

1)查看文件全部参数

more henu.txt

wc henu.txt

其中16  16  417 分别代表行数、一行中的字符数、总的字符数

2)统计文件行数

wc -l henu.txt

“wc”命令主要统计英文的字符,建议使用此命令查看文件中的行数

 

2、文件内容含有条件的筛选awk

# FS=",":以","分割行, $1:显示第一列,NR:当前所在的行,NF当前行分割的字段数

awk 'BEGIN{FS=","} {print $1 "\t"  $2  "\t"  NR "\t"  NF}'  henu.txt

# 筛选第一列->排序->去重并计算重复次数->按照重复次数排序->重定向到新文件中

awk  'BEGIN{FS=","} {print $1}' henu.txt | sort | uniq -c | sort -rn -k1 > new_henu.txt

 

3、替换字符和删除行sed

1)替换:sed 's/旧字符/新字符/g' ,特殊字符要使用转义

其中正则表达式中,“.”表示任意字符,“*”重复多次

# 表示删除file_name文件中的括号里面的内容和括号,并用空代替

cat file_name | sed 's/(.*)//g' | sed 's/\[.*\]//g'

# 将“河南大学”替换为“河大”

cat henu.txt | sed 's/'河南大学'/'河大'/g' > new_henu.txt

2)删除行

#删除第一行和第二行

cat henu.txt | sed '1,2d' >new_henu.txt

 

4、查找字符grep

#查找“河南大学”

cat henu.txt | grep '河南大学' >new_henu.txt

#正则查找,查找以“大”开头,以“语”结束的字符

cat henu.txt | grep '大.*语' >new_henu.txt

5、其他

1)cut切割字符

# 以“,”切割文件并取出第1列

cat  henu.txt |cut -d ',' -f 1| sort | uniq -c | sort -rn -k1 > new_henu.txt

2)sort排序的时候注意默认是按照字典的方式排序,如果按照数字时则必须加上-n

uniq去除重复,只能去除相邻的重复,所以要先排序,后去除重复

3)查看制表符的命令\t

cat -T file_name

sed -n l file_name(英文字母L的小写,不是管道|)

tr -d 'delete_char'

 

文件内容如下:

2,河南大学,软件工程

3,河南大学,美术

1,河南大学,计算机

4,河南大学,体育

5,河南大学,物理

13,河南科技大学,物理

6,河南大学,化学

1,河南大学,计算机

7,河南大学,计算机

8,河南科技大学,计算机

1,河南大学,计算机

9,河南理工学院,

10,河南工学院,

11,河南大学,英语

12,河南大学,语文

13,河南科技大学,物理

14,河南科技大学,化学

15,河南大学,计算机

13,河南科技大学,物理

13,河南科技大学,物理

16,河南大学,软件工程

参见《鸟哥的私房菜》

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值