linux 文本处理三剑客

linux 文本处理常用3个命令

相关概念

Linux 管道

管道

管道是进程间通信的方式之一,本质上可以理解为一种文件资源,其实是一种缓冲区。利用文件系统中file结构,通过在2个节点间创建临时节点,实现节点间的单向通信。
管道有无名管道和有名管道之分,区别是前者只能在具有相关关系(比如父子进程等)的进程间可以使用,后者则没有严格限制。

管道命令

管道命令使用“|”作为界定符,并且由于管道命令自身的原因,管道命令只能处理前面命令传递的正确信息,stdandard error不能被处理。也就是说前面命令要有stdandard output作为后面命令stdandard input,这也是其和连续执行命令的区别。比如ls 就不能作为管道命令,因为它不会接收数据。

grep

格式

grep 正则 -xxx somethingelse 【–color】 filename1【 filename2】

参数

-a 将二进制文件以text文件的方式查找数据
-c 计数
-i 忽略大小写的不同
-v 取反
-n 行号

特别参数

–color=auto
颜色标记

举例

eg :
grep ‘usr’ --color=auto Read.md index.md
从文件Read.md和 index.md中输出包含usr字符串的行

相关

与之相关的还有cut命令
比如

cut -d ':' -f  // 2 以:分割,取第二列
-d 分割符
-f  所取的列

awk

处理每一行内的数据
awk 与其说是文本处理工具,更不如说是一种编程语言。

格式

awk ‘条件类型1{动作1} 条件类型2{动作2}’ filename

参数

-F 分隔符

特别参数

FS 分割符
NR 总行数
NF 总列数
$0当前行

举例

awk -F “” ‘{if(NR <30 && NR >10) print $1 }’ filename
// 取出10-30行的内容
甚至可以写循环和使用函数比如strstr(字符串查找)、touper(大写)等

sed

处理每一行内的数据

格式

sed -XXX filename

参数

-e 命令模式 输出到命令行中
-f 文件模式 输出到文件中
-n 安静模式 只有sed特殊处理的行会显示
-i 修改文件本身

特殊参数

g 全局匹配
s 替换
d 删除
p 显示

举例

cat filename|sed ‘10,30p’ 输出10-30行的内容
cat filename | sed ‘s/oldword/newword/g’ 用newword替换oldword

常见命令

wc 显示行数、字符数
sort 排序
uniq 去重计数
diff 文件比较

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值