![image]()
linux文本处理命令
# sort 命令 可以把文件的内容加以排序
格式是:
sort + [文件名]
'排序默是按照第一个字母排序的 而且是同类和同类之间排序 排序的大小是按照ASCII码来的'
# sort的参数
sort -n + [文件名] # 依照数值的大小来进行排序
sort -r + [文件名] # 反向排序
sort -k2 + [文件名] # 以第几列进行排序
sort -t' ' + [文件名] # 指定分割符 默认是以空格作为分割符
# uniq 命令 用于去重 不过只能去重相邻的 所以一般和sort命令一块使用
格式为:
uniq + [文件名]
# uniq 参数
uniq -c + [文件名] # 在列旁边显示该行出现的次数
uniq -d + [文件名] # 仅显示重复出现的内容
uniq -u + [文件名] # 仅显示出现过一次的内容
# cut命令 用来显示行中的指定部分 删除文件中的指定字符
格式为:
cut -d '指定分割符' -f'指定内容' + [文件名]
# cut 参数
-d # 指定字段的分隔符 默认分割符为 'TAB'
-f # 显示指定字段内容
# tr命令 替换或删除命令
格式:
cat + [文件名] | tr + [需要替换内容] + [替换内容]
'替换字符串是一一对应提替换的'
# tr 参数
-d 删除字符
格式 : cat + [文件名] | tr -d + [需要删除内容]
# wc命令 统计和计算数字
# wc 参数
wc -c + [文件名] # 统计文件中的字节数
wc -l + [文件名] # 统计文件的行数
wc -w + [文件名] # 统计文件中单词的个数 单体是指连一块的字符串 默认是空白字符作为分隔符
![image]()
三剑客之sed命令
# sed是linux中流媒体编辑器
# 三剑客各自的功能
grep 是用来过滤文本
sed 是用来修改文本
awk 是用来处理文本
# sed的格式:
sed + [参数] + '处理规则' + [操作对象]
# sde 参数
-e 允许多项编辑 例: sed -e '1d' -e '3d' + [文件名]
-n 取消默认输出 就是把显示给取消了
-i 就地编辑 就是把展示的内容直接写入文件中
-r 支持拓展正则 普通正则默认支持
例: sed -r '/123/d' + [文件名]
-f 指定某个文件类写入的正则规则 然后通过-f参数来操作某文件
例: sde -f + [指定的正则] + [需要操作的文件]
# sed 的编辑模式
d 删除
p 打印
a 在当前行后添加一行或者多行
例: sed '5a666' + [文件名] 在第五行之后添加666
c 用新的文本修改或者替换当前行
例:sed '5c666' + [文件名] 把第五行内容修改为666
i 单独使用时在当前行之前插入文本
例:sed '5i666' + [文件名] 把第5行插入666
r 在文件当中读内容 病例区插入到指定行的后一行
例:sed '3r 1.txt' + 2.txt 代表把1.txt全部内容插入到2点txt的第四行
w 将指定行写入文件 清空写入文件 并且把指定文件内容全部写入到写入文件中
例:sed '2w 1.txt' + 2.txt 将2.txt的内容写入到1.txt
y 将字符转换成另一个字符
例:sed '2y/a/A/' 2.txt 把2.txt中的小写a全部替换成大写A
s 减字符串转换成另一个字符串 s模式是放在正则的前面
例:sed 's/10/50/' 2.txt 把2.txt的11行替换成了个50 每行只会替换一次
g 全部执行 配合s使用
例:sed 's/10/50/g' 2.txt 把2.txt的所有10都替换成个50 g本身是没有替换功能的
i 和s模式配合使用时 忽略大小写
例:sed 's/10/50/gi' 2.txt 把2.txt的所有10都替换成个50 并且忽略大小写
# sde 定位
1.数字定位法 # 指定行号
例: sed '3d' + [文件名]
sed '2,3d' + [文件名] 代表定位2到3行
2.正则定位法
例:sed '/g/d' + [文件名]
sed '^/g/d' + [文件名] g开头的都删了
3.数字和正则定位法
例:sed '3,/^g/d' + [文件名] 第三行到g开头的都删除
4.正则正则定位法
例: sed '/^g/,/^j/d' + [文件名] g开头的到j开头的都删除
![image]()
补充知识
正则匹配时 & 就代表前面匹配的内容
sed 's/.*/%&/g' 3.txt
代表把3.txt中的每一行都添加上%
![image]()